某些 apache 執行緒上的 CPU 負載 >10%,其他執行緒為 0.2%

某些 apache 執行緒上的 CPU 負載 >10%,其他執行緒為 0.2%

我有一個運行 WordPress 網站的 apache 機器。

由於某種原因,一些 apache 執行緒似乎使用了大部分 CPU (10%+),而剩餘的很少 (0.1~)。

盒子是雙CPU的,Intel(R) Xeon(R) CPU E5620 @ 2.40GHz(每個 CPU 有 4 個核心和 8 個執行緒)

執行緒如此顯示的原因是什麼?

是否有任何 apache 最佳化集可以幫助減少負載(CentOS、使用 PHP 和 MySQL 安裝基本 apache2)?

prefork 和worker MPM 設定預設如下

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

高負載

答案1

由於某種原因,一些 apache 執行緒似乎使用了大部分 CPU (10%+),而剩餘的很少 (0.1~)。

這裡你需要更多注意的是你的實際活動。在您提供的快照中,正在執行的任務數為 7,負載為 4。

因此,此時需要服務的人數為 7(可能 - 雖然我只能看到 6 歸因於 httpd)。其餘的都是睡眠進程,除非發生某些事件,否則它們不會醒來。

某些行程上的 CPU 百分比較高而另一個行程的 CPU 百分比較低的原因是,在給定的第二個週期內只有這麼多行程有事情要做top

有沒有一套 apache 優化可以幫助減少負載?

嗯,您的負載可能徘徊在 3 到 4 左右,因為您運行的進程有一半可能無法在 5 秒內完成(負載每五秒在內部測量一次)。

  1. 那裡有太多活躍的 apache 進程。您的預分叉設定是什麼?嘗試將其設定為更可行的值。最大 72 可能是合理的開始並從那裡開始調整。即使您可以為每個人提供這麼多的進程,您也會導致所有進程同等比例地減慢,並且負載隨著所服務的人數而增加。快速提供您所能提供的服務並拒絕您無法提供的服務,這比非常緩慢地為每個人提供服務要好。

  2. 我感覺你的 WordPress 頁面的某些部分的計算成本很高。嘗試快取一些更昂貴的內容。

相關內容