Apache httpd 性能低下

Apache httpd 性能低下

我有一个网站,使用 Centos 7 上的 httpd 运行。

我有 8 个 CPU 和 32 GB 内存。

当我们的网站同时有超过 500-600 个用户时,服务器响应会越来越高。即便如此,CPU 负载也约为 20-25%,RAM 也未使用。

我们可以配置什么来提高性能或我遗漏了什么?我们的页面 100% 缓存,我们不运行数据库查询或类似的东西。

httpd配置文件

HostnameLookups Off
KeepAlive On
MaxKeepAliveRequests 1500
KeepAliveTimeout 5
<IfModule prefork.c>
   StartServers        30
   MinSpareServers     30
   MaxSpareServers     50
   ServerLimit      512
   MaxClients       512
   MaxRequestsPerChild 10000
</IfModule>

顶部:

%Cpu(s):  1.9 us,  2.6 sy,  0.0 ni, 95.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 32779548 total,  3268520 free, 12679060 used, 16831968 buff/cache

答案1

Apache 非常高效。虽然从技术上来说我的回答应该是正确的,但几乎可以肯定是其他原因导致您陷入困境,而不是服务器本身。可能是您正在运行的 CGI 或完全不同的东西。

您可能希望先运行一下,top看看哪些程序实际上正在消耗资源,然后从那里开始,或许在发布所看到的内容时提出更多问题。

我能想到的 Apache 真正可能陷入困境的唯一模糊例子是:

  1. 如果您以某种方式使其递归 - 您知道 - 从一个 URL 重定向到同一个 URL,然后一次又一次地...

  2. 如果您在配置中使用了无法解析的域名。可能是拼写错误或已过期,或者您的 DNS 混乱。轻微的失误是可以接受的,但有些配置可能会在每次命中时尝试多次失败的 DNS 查找。

看起来您的 CPU 仍然处于空闲状态,因此它可能正在等待某些 DNS 或系统问题或其他问题。

“kdump” 可以真正深入细节并了解正在发生的事情,但首先要查看“top”(或 ps -axww)的其余部分,看看哪些程序实际上正在使用你的系统资源,而不是仅仅假设它是 apache,因为问题可能是也可能不是 apache 本身。

相关内容