首頁  >  文章  >  php教程  >  Apache的效能最佳化(五)

Apache的效能最佳化(五)

黄舟
黄舟原創
2016-12-21 11:27:361256瀏覽

下面是worker的預設設定段:

 

StartServers         2 如果現有子程序中的總執行緒無法滿足負載,控制進程將派生新的子程序。

MinSpareThreads     25  //設定了最少的空閒執行緒數

MaxSpareThreads    75  //設定了最多的空閒執行緒數。 。

ThreadsPerChild     25

MaxRequestsPerChild  0  //它是worker MPM中與效能相關最密切的指令。 ThreadsPerChild的最大缺省值是64,如果負載較大,64也是不夠的。這時要明確使用ThreadLimit指令,它的最大預設值是20000。上述兩個值位於原始碼樹server/mpm/worker/worker.c中的以下兩行:

#define DEFAULT_THREAD_LIMIT 64

#define MAX_THREAD_LIMIT 20000 

#define MAX_THREAD_LIMIT 20000 

這兩行對應著ThreadsLimit。最好在configure之前就把64改成所希望的值。注意,不要把這兩個值設得太高,超過系統的處理能力,因而因Apache不起動使系統很不穩定。

 

Worker模式下所能同時處理的請求總數是由子進程總數乘以ThreadsPerChild值決定的,應該大於等於MaxClients。如果負載很大,現有的子進程數無法滿足時,控制進程會衍生新的子進程。預設最大的子行程總數是16,加大時也需要明確宣告ServerLimit(最大值是20000)。這兩個值位於原始碼樹server/mpm/worker/worker.c中的以下兩行: 

#define DEFAULT_SERVER_LIMIT 16 
#define MAX_SERVER_LIMIT 20000

需要注意的是,如果明確聲明了Server ThreadsPerChild的值必須大於等於MaxClients,而且MaxClients必須是ThreadsPerChild的整數倍,否則Apache將會自動調節到一個對應值(可能是非期望值)。

 以上就是Apache的效能最佳化(五)的內容,更多相關內容請關注PHP中文網(www.php.cn)! 


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn