Apache 2 正在忙什么?

Apache 2 正在忙什么?

我在 Ubuntu 上使用 Apache 2.2.17 - Apache 似乎占用了 100% 的 CPU。我如何知道 Apache 忙于做什么导致 CPU 使用率如此之高?

我应该使用一些堆栈跟踪工具吗?或者也许有一些 Apache 插件可以转储其内部状态?

答案1

检查访问日志和错误日志文件(位置在“httpd.conf”文件中定义)是否存在大量活动(最新条目位于文件末尾 - 使用“tail -f access.log”实时观看)。

如果您的日志文件中没有显示任何活动,那么可能是某些代码陷入了无限循环。重新启动 Apache HTTPd 可以暂时修复该问题,但您肯定希望检查自定义代码(您使用的是 mod_perl2、CGI Perl、PHP 还是其他代码?),特别是在您认为此症状开始出现后修改/添加的代码。

“服务器状态”模块(应包含在默认构建中)也可能提供一些见解。

如果重新启动后活动率再次达到 100%,那么可能是因为 Apache HTTPd 加载了一些代码,导致出现了问题,或者是某个模块出现了问题。

您是否对配置做了任何复杂的操作?您使用的是 mod_perl2、CGI Perl、PHP 还是其他?您使用的是哪个版本的 Apache HTTPd?您在哪个操作系统上运行它(我假设是 Unix 或 Linux,因为这些操作系统更适合用作 Web 服务器,而且似乎也是大多数人的选择)?

相关内容