php性能分析のphp-fpm遅い実行ログslow logs使い方を簡単に分析します。
本論文の実例は、php-fpmの遅い実行ログslow logsの使い方を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
周知のように、mysqlにslow query logsがあります。ゆっくり調べたログによって、sql文の性能に問題があることが分かります。mysqlの良きパートナーとして、phpにもこのような機能があります。php-fpmを使ってphpを管理すれば、次のようなオプションでオープンできます。
PHP 5.3.3の前に以下のように設定します。
request_slow log_timeoutはスクリプトです。どれぐらいの時間でログファイルに記録できますか?
slogsはログファイルのパスです。
オープン後、スクリプトの実行が指定された時間を超えると、指定されたログファイルに以下のような情報が書き込まれます。
[19-Dec-2013 16:54:49][pool www]pid 1875
スクリプトfilename=/home/admin/web/httdocs/sandbox_canglong/test/t.php
[0 x 000030 a 00 dc 8]キュゥべえexec()/home/admin/web/httdocs/sandbox_canglong/test/t.php:2
[0 x 0000 03 a 00 cd 0]exfilter_curlget()/home/admin/web/httdocs/sandbox_canglong/test/t.php:6
ログの説明:
スクリプトfilenameは入り口のファイルです。
curlexec():この方法を実行する時に実行時間を超えたと説明します。
exfilter_curlget():キャロルコールの説明exec()の方法はexfilter_です。curlget()
行の番号の後ろの数字は行番号です。
オープン後、エラーログファイルにも関連記録があります。以下のとおりです
[19-Dec-2013 15:55:37]WARNING:[pool www]child 1875、script'/home/admin/web/httocs/sandbox_canglong/test/tt.php'(request:「GET/test/t.php」)executing too slow(1.00622 sec)、loging
[19-Dec-2013 15:55:37]NOTICE:child 1875 stopped for tracing
[19-Dec-2013 15:55:37]NOTICE:about to trace 1875
[19-Dec-2013 15:55:37]NOTICE:finished trace of 1875
PHPについてもっと興味がある読者は、本駅のテーマを見てもいいです。「PHPエラーと異常処理方法のまとめ」、「php文字列(string)使い方のまとめ」、「PHP配列(Aray)操作テクニック大全」、「PHP演算と演算子の使い方のまとめ」、「PHPネットワークプログラミング技術のまとめ」、「PHP基本文法入門教程」、「php対象プログラム設計入門教程」、「php+mysqlデータベース操作入門教程」および「phpよくあるデータベースの操作技巧のまとめ」
本論文で述べたように、皆さんのPHPプログラムの設計に役に立ちますように。
周知のように、mysqlにslow query logsがあります。ゆっくり調べたログによって、sql文の性能に問題があることが分かります。mysqlの良きパートナーとして、phpにもこのような機能があります。php-fpmを使ってphpを管理すれば、次のようなオプションでオープンできます。
PHP 5.3.3の前に以下のように設定します。
<value name="request_slowlog_timeout">5s</value>
<value name="slowlog">logs/php-fpm-slowlog.log</value>
PHP 5.3.3以降は以下のように設定します。
request_slowlog_timeout = 5s
slowlog = /usr/local/php/log/php-fpm-slowlog.log
説明:request_slow log_timeoutはスクリプトです。どれぐらいの時間でログファイルに記録できますか?
slogsはログファイルのパスです。
オープン後、スクリプトの実行が指定された時間を超えると、指定されたログファイルに以下のような情報が書き込まれます。
[19-Dec-2013 16:54:49][pool www]pid 1875
スクリプトfilename=/home/admin/web/httdocs/sandbox_canglong/test/t.php
[0 x 000030 a 00 dc 8]キュゥべえexec()/home/admin/web/httdocs/sandbox_canglong/test/t.php:2
[0 x 0000 03 a 00 cd 0]exfilter_curlget()/home/admin/web/httdocs/sandbox_canglong/test/t.php:6
ログの説明:
スクリプトfilenameは入り口のファイルです。
curlexec():この方法を実行する時に実行時間を超えたと説明します。
exfilter_curlget():キャロルコールの説明exec()の方法はexfilter_です。curlget()
行の番号の後ろの数字は行番号です。
オープン後、エラーログファイルにも関連記録があります。以下のとおりです
[19-Dec-2013 15:55:37]WARNING:[pool www]child 1875、script'/home/admin/web/httocs/sandbox_canglong/test/tt.php'(request:「GET/test/t.php」)executing too slow(1.00622 sec)、loging
[19-Dec-2013 15:55:37]NOTICE:child 1875 stopped for tracing
[19-Dec-2013 15:55:37]NOTICE:about to trace 1875
[19-Dec-2013 15:55:37]NOTICE:finished trace of 1875
PHPについてもっと興味がある読者は、本駅のテーマを見てもいいです。「PHPエラーと異常処理方法のまとめ」、「php文字列(string)使い方のまとめ」、「PHP配列(Aray)操作テクニック大全」、「PHP演算と演算子の使い方のまとめ」、「PHPネットワークプログラミング技術のまとめ」、「PHP基本文法入門教程」、「php対象プログラム設計入門教程」、「php+mysqlデータベース操作入門教程」および「phpよくあるデータベースの操作技巧のまとめ」
本論文で述べたように、皆さんのPHPプログラムの設計に役に立ちますように。