Identifique scripts PHP longos ou lentos

1

Eu tenho um servidor da web que recebe cerca de 25 mil visitas por dia no yougetsignal.com . Às vezes, o site parece um pouco lento. Estou hospedando no nginx com php5-fpm. Existe uma maneira de eu ver uma lista de todas as solicitações de longa duração que estão chegando ao site?

Adoraria ter uma lista em tempo real de todas as solicitações ativas que o PHP está manipulando e por quanto tempo elas estão sendo executadas. Tipo como top, mas apenas para o servidor web. Isso permitiria saber por quanto tempo as solicitações estão sendo feitas e qual script é o culpado.

Alguém tem alguma ideia de como posso fazer isso?

    
por Kirk Ouimet 27.06.2013 / 00:18

1 resposta

3

No seu arquivo de configuração do PHP-FPM, para as Definições do Conjunto, você pode ativar um "log lento" que pode fornecer mais informações sobre scripts PHP de longa execução:

; 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

Descomente slowlog e defina como um nome de arquivo válido, e descomente request_slowlog_timeout e defina como 10s ou qualquer valor que você achar que seja muito longo, então recarregue / reinicie o PHP-FPM.

    
por 29.06.2013 / 04:02