Как отследить процесс, который выполняется слишком долго? - PullRequest
0 голосов
/ 20 июня 2019

У меня VPS с брандмауэром и включенными уведомлениями о безопасности.Я продолжаю получать электронные письма, подобные этому:

Time:         Wed Jun 19 19:01:54 2019 -0500
Account:      user
Resource:     Process Time
Exceeded:     7248 > 3600 (seconds)
Executable:   /opt/cpanel/ea-php72/root/usr/sbin/php-fpm
Command Line: php-fpm: pool domain_com                           
PID:          16374 (Parent PID:9915)
Killed:       No

Так что по некоторым причинам в этом примере у меня есть скрипт, который, по-видимому, работает без перерыва 2 часа.У меня нет ничего, что должно было бы делать это.

Я получаю уведомления, как это довольно часто.Как я могу использовать эту информацию, чтобы отследить, что конкретно вызывает это?

Любая информация будет принята с благодарностью.Спасибо!

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Вы можете отследить, какой именно процесс указан с указанным идентификатором процесса.

lsof -p 16374

Предупреждение, которое вы получаете, поступает от LDF, установленного как часть CSF.Я думаю, что нормально для cPanel с php_fpm запускать процесс php_fpm так долго.

Вы можете добавить php-fpm в файл csf.pignore, чтобы остановить это предупреждение.Вы также можете обратиться к приведенной ниже теме cPanel fourmhttps://forums.cpanel.net/threads/lfd-excessive-resource-usage-normal-for-php-fpm.592583/

1 голос
/ 20 июня 2019

Чтобы получить больше информации о процессах, я бы использовал инструмент Htop. Это отличная статья для изучения того, как управлять процессами с помощью htop и ps

Lsof (Список открытых файлов) расскажет вам больше информации о том, какие файлы использует процесс.

Вы можете получить htop и lsof с помощью

sudo apt install htop lsof -y

Эта статья указывает, что : Это сообщение поступает от стороннего приложения CSF / LFD и указывает, что процесс PHP-FPM работал дольше, чем максимальное время, настроенное для периода обнаружения CSF / LFD. Он показывает, что процесс не был убит, поэтому вы не должны потерять трафик.

Так что вы можете проверить журнал ошибок PHP-FPM для рассматриваемой учетной записи, чтобы увидеть, замечаете ли вы какие-либо конкретные сообщения об ошибках. Он расположен по адресу:

/home/$username/logs/domain_tld.php.error.log

Похоже, что ваша конкретная проблема не была решена в этой форме. Итак, вы можете попробовать strace. Он обрабатывает системные вызовы, выполняемые данным процессом, включая все операции чтения-записи и вызовы функций os. Вы можете активировать его в командной строке перед тем, как программу, которую вы хотите отслеживать или присоединить к запущенному процессу, нажав s на процессе, выбранном в htop.

...