如何快速定位php程序运行慢的地方

1 slow log日志

查看slowlog日志位置

编辑php-fpm.conf文件,更改或增加两行内容

slowlog = /data/logs/php-slow.log

request_slowlog_timeout = 2 

说明:slowlog定义日志路径和名字,request_slowlog_timeout定义超时时间,单位秒,即一个php脚本执行时间超过了该时间,则会记录日志。

2 重启php-fpm服务或者重载php-fpm配置,要针对master进程做操作

(1)master进程可以理解以下信号

INT, TERM 立刻终止 

QUIT 平滑终止 

USR1 重新打开日志文件 

USR2 平滑重载所有worker进程并重新载入配置和二进制模块

具体步骤

1 先查看php-fpm的master进程号

ps -aux | grep php-fpm

如何快速定位php程序运行慢的地方_第1张图片

2 重启php-fpm:

kill -USR2 2208

(2) 如果有php-fpm.pid 可以用php-fpm.pid控制

kill -USR2 `cat /www/server/php/73/var/run/php-fpm.pid`

3 测试

我设置的超时时间request_slowlog_timeout为30秒

如何快速定位php程序运行慢的地方_第2张图片

访问地址一下出现先下面的错误

如何快速定位php程序运行慢的地方_第3张图片

很容易定位到了test方法里的sleep方法

如果是apache可以使用这个Xdebug+Webgrind

你可能感兴趣的:(php,开发语言)