我一直在新 Apache 服务器上运行 Apache HTTP 服务器基准测试工具 (ab) 来测试性能。我注意到使用以下命令:
ab -n 100000 -c 1000 http://www.mysite.com/
测试期间,apache2 进程占用了 100% 的 CPU。测试结束时,通常在发出最后一个请求之前会出现以下错误:
apr_poll: The timeout specified has expired (70007)
Total of 99960 requests completed
CPU 使用率仍然为 100%,全部被 apache 占用。
我正在使用带有 mod_fcgid 的 worker MPM 并运行 PHP。
如果您能提供任何关于为什么会出现这种情况或如何阻止这种情况的建议,我们将不胜感激。
答案1
经过进一步的挖掘,我尝试禁用一些模块。结果发现,当我禁用 mod_pagespeed 时,问题消失了,基准测试速度也快了很多。我发现 mod_pagespeed 并未针对 worker MPM 进行优化。我会查看 pagespeed 配置中是否存在可以修复的明显问题,否则我将不得不将其删除。