当 PHP 是一个模块时,从 httpd 实例到 PHP 脚本进行跟踪

当 PHP 是一个模块时,从 httpd 实例到 PHP 脚本进行跟踪

我试图弄清楚究竟发生了什么,导致随机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/

相关内容