Назад | Перейти на главную страницу

Определите длительные или медленные скрипты PHP

У меня есть веб-сервер, который посещает около 25 тысяч в день по адресу yougetsignal.com. Иногда сайт кажется немного вялым. Я размещаю его на nginx с php5-fpm. Есть ли способ просмотреть список всех давно выполняющихся запросов, поступающих на сайт?

Мне бы хотелось иметь в реальном времени список всех активных запросов, которые обрабатывает PHP, и того, как долго они выполнялись. Вроде как топ, но только для веб-сервера. Это позволит мне узнать, сколько времени занимают запросы и какой скрипт является виновником.

У кого-нибудь есть идеи, как я могу это сделать?

В файле конфигурации PHP-FPM для определений пула вы можете включить «медленный журнал», который может предоставить дополнительную информацию о долго выполняющихся сценариях PHP:

; The log file for slow requests
; Default Value: not set
; Note: slowlog is mandatory if request_slowlog_timeout is set
;slowlog = log/$pool.log.slow

; The timeout for serving a single request after which a PHP backtrace will be
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_slowlog_timeout = 0

Раскомментировать slowlog и укажите допустимое имя файла и раскомментируйте request_slowlog_timeout и установите 10 с или любое другое значение, которое вы считаете слишком длинным, затем перезагрузите / перезапустите PHP-FPM.