通过启用php-fpm的slowlog来解决PHP CPU占用过高问题,php-fpmslowlog开启方法如下:编辑p


前阵子通过top发现PHP-fpm的进程很高,网站打开速度很慢,估计肯定某个php脚本执行时间过长,所以开启了php-fpm的slowlog来跟踪哪些php脚本执行过慢。

开启方法如下:

编辑php-fpm.conf文件

找到request_slowlog_timeout = 0这一行,默认值为0,表示不开启slowlog,将其值改为3s,表示跟踪执行时间达到或超过3s的脚本。找到slowlog,它的值表示慢执行日志的路径。

修改完后需要重启php,slowlog的文件的内容大概是这样的:

[31-Dec-2012 09:50:00] [pool www] pid 2874
script_filename = /htdocs/blog/index.php
[0x0000000001cf4ff0] mysql_query() /htdocs/blog/class/mysql.php:9
[0x0000000001cf4ec0] query() /htdocs/blog/class/mysql.php:26
[0x0000000001cf4a70] one() /htdocs/blog/class/ware.php:88
[0x0000000001cf46c8] query() /htdocs/blog/function/common.php:132
[0x0000000001cf3a40] +++ dump failed

这样就可以很明显看到什么mysql.php的mysql_query()方法执行的语句超时了。

相关内容