Apache 已达到 MaxRequestWorkers,但 access_log 中没有任何内容

Apache 已达到 MaxRequestWorkers,但 access_log 中没有任何内容

这是在 Apache error_log 中的内容:
[Thu Nov 17 17:08:22.935022 2016] [mpm_event:error] [pid 27241:tid 139681776355296] AH00484:服务器已达到 MaxRequestWorkers 设置,请考虑提高 MaxRequestWorkers 设置

而在access_log中,16:41和17:21之间没有任何内容。

此外,服务器密度显示在 17:08(与 Apache error_log 同一时间)
- 平均负载:34
- php-cgi(无人)进程:87
- php-cgi(无人)CPU:140%

为什么 apache 说已达到 MaxRequestWorkers 而此时它的 access_log 中却没有任何内容?

笔记:

  • 我运行了一些 cron,但它们显示为用户(所以不是“无人”),并且它们在 php cli 中运行(所以不是通过 apache)
  • 在 htop 中,“nobody”通常具有 /usr/sbin/httpd
  • Centos 6、WHM cPanel、Apache 2.4

答案1

这是预期的行为。您的所有 httpd 进程/线程都在执行一些长时间运行的 php 任务来为多个用户会话提供服务。一旦达到 MaxRequestWorkers 的限制,就不会再提供任何请求。access_log 中会出现一个条目请求完成时会显示某些状态,例如正常 (200) 或超时 (502)。因此,如果没有完成新的请求,则 access_log 中不会有任何行,即使许多浏览器一直在尝试连接。

相关内容