Apache 在小负载峰值期间超时

Apache 在小负载峰值期间超时

我在 Centos 7 服务器上运行 Apache 2.4.17 (prefork)。服务器规格非常好:2 x Xeon E5-2697 v3 @ 2.60GHz、512GB RAM 和 8 个 SSD(RAID 10)。

该 Apache 服务器用于运行 PHP 软件。

正常负载在 8 到 15 之间,但由于服务器规格,响应速度非常快。此外,每秒的请求数通常低于 300。

我注意到有时 Apache 会超时即使对于本地请求。当每秒请求数高于 400 和/或负载为 20+ 时,就会发生这种情况。

如果我重试该请求,它可以正常工作。

以下是相关配置:

Timeout 300
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
    ServerLimit 2000
    StartServers            30
    MinSpareServers         20
    MaxSpareServers         80
    MaxRequestWorkers      2000
    MaxConnectionsPerChild   50000
</IfModule>

一些说明:

  1. Apache 错误日志根本没有显示任何错误。
  2. 即使发生这种情况,服务器也会响应。我可以使用 SSH 访问它,其他服务也运行正常。
  3. 我安装了 munin。当问题发生时,至少 50% 的 RAM 是空闲的,CPU 使用率约为 70%,I/O 使用率非常低。

我如何才能获得有关此问题的更多信息?什么可能导致此类超时?

答案1

经过大量测试、配置更改等之后,我仍无法修复 Apache 2.4 的这个问题。

我决定使用相同的配置尝试一下 Apache 2.2。我只删除了一些 Apache 2.4 特有的指令。

它确实有效。相同的服务器、配置、应用程序和负载。使用 Apache 2.2,我不再遇到超时问题。

相关内容