如果 php 动态页面访问非常慢,我们可以通过 php-fpm 慢日志进行分析网站的瓶颈。
php-fpm 慢日志 slowlog 设置 可以让我们很好的看见哪些 php 进程速度太慢而导致的网站问题。
首先通过 top -c 命令查看所有进程,查看 php-fpm 加载的配置文件地址,如下图:
![1653442202197560.png QQ截图20220525093231.png](/uploads/ueditor/image/20220525/1653442202197560.png)
FPM 配置
参数:-p,命令行中动态修改--prefix
include=etc/php-fpm.d/*.conf,用于包含一个或多个文件,如果glob(3)存在(glob()函数返回匹配指定模式的文件名或目录)
php-fpm 会加载子配置文件,$pool 变量可以在任何指令中使用,他将会替代相应的进程池名字。例如:这里的[www]
开启慢日志
进入到 /usr/local/etc/php-fpm.d 子配置文件,找到 www.conf(根据自己实际情况),PHP 5.3.3 之后版本设置如下:
; The timeout for serving a single request after which a PHP backtrace will be
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
request_slowlog_timeout = 1s
; The log file for slow requests
; Default Value: /usr/local/php/log/php-fpm.log.slow
slowlog = /usr/local/php/log/php-fpm.log.slow
; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop execution for some reason. A value of '0' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
request_terminate_timeout = 10s
注:request_terminate_timeout 将执行时间太长的进程直接终止
request_slowlog_timeout 将执行过慢的文件写入日志
以后即可根据慢执行日志 /usr/local/php/log/php-fpm.log.slow 来优化程序文件了!
本文链接: https://dh.7deer.cc/news/538.html