php专区

 首页 > php专区 > PHP高级 > 缓存异常处理 > 善用php-fpm的慢执行日志slowlog,分析php性能问题

善用php-fpm的慢执行日志slowlog,分析php性能问题

分享到:
【字体:

众所周知,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/web/htdocs/sandbox_canglong/test/tt.php
[0x0000000003a00dc8] curl_exec() /home/web/htdocs/sandbox_canglong/test/tt.php:2
[0x0000000003a00cd0] exfilter_curl_get() /home/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/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-fpm的慢执行日志slow log,分析php性能

分享到:
线上PHP问题排查思路与实践
前言 前几天,在一淘网,腾讯网媒和微博商业技术联合组织的技术分享大会上,我分享了《在线PHP问题排查思路与实践》。此博文除了对PPT提供下载外,还会对ppt做简单的注释说明。主题分为三部分,常见问题,解决思路和案例分析。 常见问题 不同用户看到的错误可能不一样。一般用户看到的错误都是表层的现象...
php-fpm启动报错Segmentationfault$php_f...
今天QA使用php-fpm启动php报错。具体信息如下: -bash-3.2$ ~/script/client/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm [29-Jul-2013 16:11:55] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root/home/script/client/php-fpm: line 52...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……