我有一个网络服务器,每天大约有 25K 次访问yougetsignal.com。有时网站感觉有点慢。我使用 php5-fpm 在 nginx 上托管它。有没有办法让我查看所有进入网站的长时间运行请求的列表?
我很想拥有一个实时列表,列出 PHP 正在处理的所有活动请求以及它们运行了多长时间。有点像 top,但只用于 Web 服务器。这样我就能知道请求花费了多长时间以及哪个脚本是罪魁祸首。
有人知道我该如何做到这一点吗?
答案1
在您的 PHP-FPM 配置文件中,对于池定义,您可以启用“慢日志”,它可以提供有关长时间运行的 PHP 脚本的更多信息:
; The log file for slow requests
; Default Value: not set
; Note: slowlog is mandatory if request_slowlog_timeout is set
;slowlog = log/$pool.log.slow
; 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 = 0
取消注释slowlog
并设置为有效的文件名,取消注释request_slowlog_timeout
并设置为 10s 或您认为太长的任何值,然后重新加载/重新启动 PHP-FPM。