Apache httpd 效能低下

Apache httpd 效能低下

我有一個在 Centos 7 上使用 httpd 運行的網站。

我有 8 個 CPU 和 32 GB 記憶體。

當我們網站上同時有超過500-600個使用者時,伺服器回應會越來越高。即便如此,CPU 負載約為 20-25%,且 RAM 也未使用。

我們可以配置什麼來提高效能或我缺少什麼?我們的頁面是 100% 快取的,我們不執行資料庫查詢或類似的東西。

httpd.conf

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 本身,這就是問題所在。

相關內容