Linux - strace для анализа скрипта: различия между версиями
Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Admin iph (обсуждение | вклад) (Новая страница: «'''strace - утилита которая может помочь выяснить чем занят зависший процесс-скрипт.''' Приме...») |
Admin iph (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Файл:Hot11.png|link=https://bit.ly/3tbFsd6| Самые выгодные сервера в рунете ]] | ||
+ | |||
+ | |||
'''strace - утилита которая может помочь выяснить чем занят зависший процесс-скрипт.''' | '''strace - утилита которая может помочь выяснить чем занят зависший процесс-скрипт.''' | ||
− | + | # strace -o file -u user [command] | |
+ | -o - запись в файл | ||
+ | -u - выполнить из под пользователя | ||
+ | |||
+ | |||
+ | '''Пример1:''' | ||
# strace -u user php -q index.php | # strace -u user php -q index.php | ||
ioctl(6, FIONREAD, [194]) = 0 | ioctl(6, FIONREAD, [194]) = 0 | ||
Строка 11: | Строка 19: | ||
− | Видим что скрипт висит - так не может подключиться к 91.218.xx.xx:3306. Скорее всего порт закрыт на сервере. | + | Видим что скрипт висит - так как не может подключиться к 91.218.xx.xx:3306. Скорее всего порт закрыт на сервере. <br /> |
+ | |||
+ | |||
+ | '''Пример 2''' <br /> | ||
+ | Joomla - Error displaying the error page: Application Instantiation Error | ||
+ | |||
+ | munmap(0x7f5f0a193000, 4096) = 0 | ||
+ | poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) | ||
+ | write(5, "l0003SELECT `session_id`nFROM `i"..., 112) = 112 | ||
+ | read(5, "7001377z4#42S02Table 'proro149_1.i"..., 16384) = 59 | ||
+ | poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) | ||
+ | write(5, "100016", 5) = 5 | ||
+ | read(5, "70010002010", 16384) = 11 | ||
+ | stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 | ||
+ | stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 | ||
+ | write(1, "Error displaying the error page:"..., 64Error displaying the error page: Application Instantiation Error) = 64 | ||
+ | poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) | ||
+ | write(5, "2444003UPDATE `i5vw9_session`nSET "..., 1192) = 1192 | ||
+ | read(5, "7001377z4#42S02Table 'proro149_1.i"..., 16384) = 59 | ||
+ | poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) | ||
+ | write(5, "100016", 5) = 5 | ||
+ | read(5, "70010002010", 16384) = 11 | ||
+ | stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 | ||
+ | stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 | ||
+ | |||
+ | |||
+ | Проблема с базой или таблицей i5vw9_session. Необходимо проверить структуру базы, наличие таблицы i5vw9_session или конфиг Joomla - configuration.php | ||
+ | |||
+ | |||
+ | '''Пример 3''' <br /> | ||
+ | |||
+ | getsockname(6, {sa_family=AF_INET, sin_port=htons(34581), sin_addr=inet_addr("37.187.78.105")}, [16]) = 0 | ||
+ | sendto(6, "GET /tpl/rss.xml HTTP/1.1\r\nHost:"..., 60, MSG_NOSIGNAL, NULL, 0) = 60 | ||
+ | poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout) | ||
+ | poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout) | ||
+ | poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout) | ||
+ | poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout) | ||
+ | |||
+ | Скрипт висит из-за запроса к /tpl/rss.xml. В нашем случае нужно убрать запросы к http://dle.org.ua/tpl/rss.xml (так как сама ссылка висит) |
Текущая версия на 13:16, 12 декабря 2015
strace - утилита которая может помочь выяснить чем занят зависший процесс-скрипт.
# strace -o file -u user [command] -o - запись в файл -u - выполнить из под пользователя
Пример1:
# strace -u user php -q index.php ioctl(6, FIONREAD, [194]) = 0 recvfrom(6, "s\207\201\200\0\1\0\1\0\2\0\5\7p224302\5mysql\3ihc\2r"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("213.186.xx.xx")}, [16]) = 194 close(6) = 0 connect(5, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("91.218.xx.xx")}, 16^
Видим что скрипт висит - так как не может подключиться к 91.218.xx.xx:3306. Скорее всего порт закрыт на сервере.
Пример 2
Joomla - Error displaying the error page: Application Instantiation Error
munmap(0x7f5f0a193000, 4096) = 0 poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) write(5, "l0003SELECT `session_id`nFROM `i"..., 112) = 112 read(5, "7001377z4#42S02Table 'proro149_1.i"..., 16384) = 59 poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) write(5, "100016", 5) = 5 read(5, "70010002010", 16384) = 11 stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 write(1, "Error displaying the error page:"..., 64Error displaying the error page: Application Instantiation Error) = 64 poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) write(5, "2444003UPDATE `i5vw9_session`nSET "..., 1192) = 1192 read(5, "7001377z4#42S02Table 'proro149_1.i"..., 16384) = 59 poll([{fd=5, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) write(5, "100016", 5) = 5 read(5, "70010002010", 16384) = 11 stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 stat("/usr/share/zoneinfo/UTC", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0
Проблема с базой или таблицей i5vw9_session. Необходимо проверить структуру базы, наличие таблицы i5vw9_session или конфиг Joomla - configuration.php
Пример 3
getsockname(6, {sa_family=AF_INET, sin_port=htons(34581), sin_addr=inet_addr("37.187.78.105")}, [16]) = 0 sendto(6, "GET /tpl/rss.xml HTTP/1.1\r\nHost:"..., 60, MSG_NOSIGNAL, NULL, 0) = 60 poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout) poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout) poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout) poll([{fd=6, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
Скрипт висит из-за запроса к /tpl/rss.xml. В нашем случае нужно убрать запросы к http://dle.org.ua/tpl/rss.xml (так как сама ссылка висит)