php性能分析のphp-fpm遅い実行ログslow log用法の浅い分析

1887 ワード

この例では、phpパフォーマンス分析のphp-fpmスロー実行ログslow logの使い方について説明します.皆さんの参考にしてください.具体的には以下の通りです.
周知のようにmysqlにはslow query logがあり、遅いクエリーログに基づいて、それらのsql文にパフォーマンスの問題があることがわかります.mysqlの良いパートナーとしてphpにもこのような機能があります.php-fpmを使用してphpを管理する場合は、次のオプションでオンにできます.
PHP 5.3.3以前の設定は以下の通り:

5s
logs/php-fpm-slowlog.log


PHP 5.3.3以降は以下のように設定します.

request_slowlog_timeout = 5s
slowlog = /usr/local/php/log/php-fpm-slowlog.log


説明:
request_slowlog_timeoutはスクリプトがどのくらいの時間を超えてログファイルslowlogがログファイルであるかを記録できるパスです
オンにすると、スクリプトが指定した時間を超えて実行された場合、指定したログ・ファイルに次のような情報が書き込まれます.
[19-Dec-2013 16:54:49] [pool www] pid 18575 script_filename =/home/admin/web/htdocs/sandbox_canglong/test/tt.php [0x0000000003a00dc8] curl_exec()/home/admin/web/htdocs/sandbox_canglong/test/tt.php:2 [0x0000000003a00cd0] exfilter_curl_get()/home/admin/web/htdocs/sandbox_canglong/test/tt.php:6
ログの説明:
script_filenameはエントリファイルcurl_exec():このメソッドを実行するときに実行時間を超えることを説明します.exfilter_curl_get():curlの呼び出しを説明するexec()の方法はexfilter_curl_get() .
各行のコロンの後ろの数字は行番号です.
オンにすると、エラーログファイルにも関連レコードが表示されます.次のようになります.
[19-Dec-2013 15:55:37] WARNING: [pool www] child 18575, script '/home/admin/web/htdocs/sandbox_canglong/test/tt.php' (request: "GET/test/tt.php") executing too slow (1.006222 sec), logging [19-Dec-2013 15:55:37] NOTICE: child 18575 stopped for tracing [19-Dec-2013 15:55:37] NOTICE: about to trace 18575 [19-Dec-2013 15:55:37] NOTICE: finished trace of 18575
PHPについてもっと兴味のある読者は、「PHPエラーと异常処理方法の総括」、「php文字列(string)用法の総括」、「PHP配列(Array)操作技巧大全」、「PHP演算と演算子用法の総括」、「PHPネットワークプログラミング技巧の総括」、「PHP基本文法入門教程」、「phpオブジェクト向けプログラミング入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.