
Я пытаюсь выяснить, что именно так httpd
сильно увеличивает использование CPU в случайных рабочих процессах, но мне немного трудно понять, какая страница PHP запрашивается, чтобы попытаться выяснить, почему она так нагружает CPU. Если бы PHP был выполнен как обычный (а не как быстрый) CGI, я мог бы посмотреть на список процессов, но мы используем mod_php.
Есть ли способ заставить PHP 5.3 сообщать статистику производительности для текущих запущенных скриптов? Это также может быть актуально, если мы в конечном итоге решим пойти по этому php-fpm
пути.
решение1
Если вы включите mod_status
и включите ExtendedStatus
, он будет отображать запросы, обрабатываемые каждым работником.
решение2
Во-первых, я не уверен, можно ли это сделать с помощью обычного PHP, но вы можете использовать php-fpm, чтобы отобразить страницу статуса. По этой ссылке вы можете увидеть, как это сделать: https://rtcamp.com/tutorials/php/fpm-status-page/
Во-вторых, вы можете включить slowlog в php-fpm, с помощью этого вы сможете увидеть, какие скрипты работают так медленно. Вот пример того, как это сделать: https://rtcamp.com/tutorials/php/fpm-slow-log/