我的網站速度超慢,但 %CPU 只有 25%

我的網站速度超慢,但 %CPU 只有 25%

我的網站有 2 台伺服器:

  • 一台伺服器 256GO RAM 20c/40t 用於 MySQL
  • 一台伺服器 256GO RAM 20c/40t 用於 Apache

MySQL 伺服器始終正常(CPU 使用率為 30-50%)。

但是,當我的網站開始同時連接 10,000 個訪客(每分鐘加載 5,000 個頁面)時,Apache 伺服器變得超慢。奇怪的是,這台伺服器還沒有達到極限,因為 CPU 的記憶體消耗約為 20-30%。

這是topApache 伺服器上的回傳結果(當網站有 10,000 個訪客時速度超慢)。

top - 22:04:17 up 22:34,  1 user,  load average: 12.61, 13.59, 13.47
Tasks: 2139 total,  20 running, 2119 sleeping,   0 stopped,   0 zombie
%Cpu(s): 28.2 us,  7.2 sy,  0.0 ni, 63.0 id,  0.0 wa,  0.0 hi,  1.6 si,  0.0 st
KiB Mem : 26410644+total, 17146396+free,  8632064 used, 84010416 buff/cache
KiB Swap:  1047548 total,  1047548 free,        0 used. 25449820+avail Mem

就好像這台伺服器的 CPU 費用有一個限制。

這是 Apache 伺服器的設定:

keepalive: Off
keepalivetimeout: 2
maxclients: 3000
maxkeepaliverequests: 1000
maxrequestsperchild: 15000
maxspareservers: 300
minspareservers: 150
serverlimit: 3000
startservers: 1000
timeout: 300

我應該比昨天更精確的是,我的 Apache 伺服器使用 128GO RAM,網站可以支援 13,000 個同時連接的訪客,然後開始變得超慢。所以我決定換256GO RAM,但結果是最糟的...

有任何想法嗎?

我正在使用WHM。

(對不起我的英文不好)

答案1

「MaxClients 指令設定了將服務的同時請求數量的限制。任何超過 MaxClients 限制的連線嘗試通常都會排隊,最多可達基於 ListenBacklog 指令的數量。一旦子程序在結束時被釋放,如果有不同的請求,則將為連接提供服務」(參考文獻1)。http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients)。

如果您更深入地查看相關文檔,您將發現如何根據以下內容管理“serverlimit”和“maxrequestsperchild”預叉/勞工MPM,以避免邁克爾漢普頓(Michael Hampton)描繪的情況(非常解釋!)。

另外,透過檢查日誌,您應該會找到一些相關證據。

相關內容