![当 PHP 是一个模块时,从 httpd 实例到 PHP 脚本进行跟踪](https://linux22.com/image/52197/%E5%BD%93%20PHP%20%E6%98%AF%E4%B8%80%E4%B8%AA%E6%A8%A1%E5%9D%97%E6%97%B6%EF%BC%8C%E4%BB%8E%20httpd%20%E5%AE%9E%E4%BE%8B%E5%88%B0%20PHP%20%E8%84%9A%E6%9C%AC%E8%BF%9B%E8%A1%8C%E8%B7%9F%E8%B8%AA.png)
我试图弄清楚究竟发生了什么,导致随机httpd
工作人员的 CPU 使用率如此之高,但我很难弄清楚正在请求什么 PHP 页面,以便我可以尝试找出它为什么会被占用上CPU。如果 PHP 作为常规(而不是快速)CGI 完成,我可以查看进程列表,但我们使用的是 mod_php。
有没有办法让 PHP 5.3 报告当前运行脚本的性能统计信息?如果我们决定最终走这php-fpm
条路,这也可能是相关的。
答案1
如果启用mod_status
并打开ExtendedStatus
,它将显示每个工作人员正在处理的请求。
答案2
首先,我不确定你是否可以使用普通的 php 来做到这一点,但你可以使用 php-fpm 在这个链接中向你显示一个状态页面,你可以看到如何做到这一点: https://rtcamp.com/tutorials/php/fpm-status-page/
其次,您可以在 php-fpm 中启用 Slowlog,这样您就可以看到哪个脚本运行得如此缓慢。这是如何执行此操作的示例: https://rtcamp.com/tutorials/php/fpm-slow-log/