php-fpmでスローログ構成を有効にする
転載先
http://www.hiceon.com/topic/how-to-enable-slow-logging-configuration-via-php-fpm-to-detect-slower-php-script-execution/ php-fpmスローログslowlog設定は、開発者がどのphpプロセスの速度が遅すぎることによるウェブサイトの問題をよく検索し、開発者が問題の所在を簡単に見つけることができるようにします.この方法は、nginxの500、502の問題の根源を調べるのに同様に適用され、nginxが上記のエラーコードを受信すると、バックエンドphp−fpm解析phpに何らかの問題が発生したと判断することができ、例えば、実行エラー、実行タイムアウトである. php-fpm.confのプロファイルにパラメータrequest_がありますslowlog_timeoutは、 と述べている. request_slowlog_timeoutが特定の秒に設定された場合request_slowlog_timeout=5は、どのスクリプトの実行時間が5秒より大きい場合、このスクリプトがスローログファイルに記録されるかを示します. request_slowlog_timeout=0はスローログ出力をオフにすることを示します. スローログファイルの場所はphpのインストールディレクトリの下のlogフォルダにデフォルトで、slowlog=log/$poolを変更することができます.log.slowパラメータで指定します.php-fpmスローログの例では、スローログにはプロセス番号、スクリプト名、どのファイルのどの行のコードのどの関数が実行時間が長すぎるかが記録されます. request_slowlog_timeoutとslowlogは同時に設定し、request_を開く必要があります.slowlog_timeoutと同時にslowlog を開く必要があるスローログパスは手動で作成する必要があります.php-fpmスローログステップをオンにします. 【実際の操作】 スロークエリログのファイル名はslowlog=log/$poolである.log.slowで指定されています.
デフォルトのファイル名は$poolです.log.slow、変数poolはphp-fpmプロファイルで指定できます.
119 ; Pool Definitions ;
120 ;;;;;;;;;;;;;;;;;;;;
121
122 ; Multiple pools of child processes may be started with different listening
123 ; ports and different management options. The name of the pool will be
124 ; used in logs and stats. There is no limitation on the number of pools which
125 ; FPM can handle. Your system will tell you anyway :)
126
127 ; Start a new pool named 'www'.
128 ; the variable $pool can we used in any directive and will be replaced by the
129 ; pool name ('www' here)
130 [www]
130行の[www]を[test]に変更し、スムーズに再起動するとpoolnameがtestになり、新しいログファイルtestが生成する.log.slow
[root@movie php5]# ll log/
total 0
-rw------- 1 root root 0 Sep 29 19:24 test.log.slow
-rw------- 1 root root 0 Sep 29 18:35 www.log.slow
http://www.hiceon.com/topic/how-to-enable-slow-logging-configuration-via-php-fpm-to-detect-slower-php-script-execution/
; 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
[21-Nov-2013 14:30:38] [pool www] pid 11877
script_filename = /usr/local/nginx/html/www.quancha.cn/www/fyzb.php
[0xb70fb88c] file_get_contents() /usr/local/nginx/html/www.quancha.cn/www/fyzb.php:2
[21-Nov-2013 14:15:23] ERROR: [pool www] 'slowlog' must be specified for use with 'request_slowlog_timeout'
[21-Nov-2013 14:16:27] ERROR: Unable to create or open slowlog(/usr/local/php/log/www.log.slow):
No such file or directory (2)
cd /usr/local/php
vi etc/php-fpm.conf
request_slowlog_timeout 、slowlog ';', request_slowlog_timeout =5;
:wq
mkdir log
php-fpm
kill -INT `cat var/run/php-fpm.pid
sbin/php-fpm
1. cd /usr/local/php5/
2. sed -i.$(date +%F) '/;slowlog/s/;slowlog/slowlog/g' etc/php-fpm.conf
3. sed -i '/;request_slowlog_timeout = 0/s/;request_slowlog_timeout = 0/request_slowlog_timeout = 5/g' etc/php-fpm.conf
4. mkdir log
5.
# /usr/local/php5/sbin/php-fpm -t
[29-Sep-2015 18:58:35] NOTICE: configuration file /usr/local/php5/etc/php-fpm.conf tes t is successful
6.
#/etc/init.d/php-fpm reload
Reload service php-fpm done
7.
[root@movie php5]# ll log/
total 0
-rw------- 1 root root 0 Sep 29 18:35 www.log.slow
デフォルトのファイル名は$poolです.log.slow、変数poolはphp-fpmプロファイルで指定できます.
119 ; Pool Definitions ;
120 ;;;;;;;;;;;;;;;;;;;;
121
122 ; Multiple pools of child processes may be started with different listening
123 ; ports and different management options. The name of the pool will be
124 ; used in logs and stats. There is no limitation on the number of pools which
125 ; FPM can handle. Your system will tell you anyway :)
126
127 ; Start a new pool named 'www'.
128 ; the variable $pool can we used in any directive and will be replaced by the
129 ; pool name ('www' here)
130 [www]
130行の[www]を[test]に変更し、スムーズに再起動するとpoolnameがtestになり、新しいログファイルtestが生成する.log.slow
[root@movie php5]# ll log/
total 0
-rw------- 1 root root 0 Sep 29 19:24 test.log.slow
-rw------- 1 root root 0 Sep 29 18:35 www.log.slow