本文实例讲述了PHP性能分析之PHP-fpm慢执行日志slow log用法。分享给大家供大家参考,具体如下:
众所周知,MysqL有slow query log,根据慢查询日志,我们可以知道那些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_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编程从入门到精通