web-dev-qa-db-ja.com

長時間実行または低速の識別PHPスクリプト

yougetsignal.com で1日に約25Kの訪問を取得しているWebサーバーがあります。時々サイトは少し遅いと感じます。私はphp5-fpmを使用してnginxでホストしています。サイトに送信されるすべての長期実行リクエストのリストを表示する方法はありますか?

PHPが処理しているすべてのアクティブなリクエストと、それらが実行されている時間のリアルタイムリストが欲しいです。トップのようなものですが、Webサーバー専用です。これにより、リクエストにかかる時間と、どのスクリプトが原因であるかがわかります。

誰かが私がこれを行う方法について何かアイデアがありますか?

1
Kirk Ouimet

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をリロード/再起動します。

3
Alan Ivey