Apache 作为对任何用户交互的响应而执行的任何操作都会导致其他用户的性能下降,即使它非常小 - 它几乎是不可见的。
软件(内存方面)和硬件(物理限制和容量方面)都将执行几个操作来正确回答和/或记录用户交互。
在这种情况下,当您的用户(30,000-40,000)访问该站点时,Apache 仍然需要记录所有这些错误,以便满足配置设置的日志记录首选项。由于日志文件只是 gard 磁盘上的一个文本文件,因此硬盘太忙,无法对实际站点内容执行读写操作。
如果 Apache 将 404 错误作为文档抛出,服务器的负载会更高。在任何情况下,提高服务器性能的最佳方法是完全消除任何 404 错误。
您还可以将 Apache 配置文件中的 MaxRequestsPerChild 参数增加到 1000 左右,以减少从一个中央 Apache 进程到多个子进程的压力。这将允许多个 Apache 进程同时跨越新进程,从而增加所有 CPU 内核的压力,而不仅仅是一个。
有这么多访问者,我还建议您将 Apache 配置的 MPM 更改为以下内容:
<IfModule prefork.c>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 100
MaxClients 100
MaxRequestsPerChild 4000
</IfModule>