Apache 高併發之 MPM 調優比較詳細

2021-08-27 19:05:00 字數 1833 閱讀 5429

1、什麼是mpm?

multi-processing module (mpm) implements a hybrid multi-process multi-threaded server。(多程序、多執行緒)

2、有多少種mpm?

大致有:prefork mpm、worker mpm、beos mpm、netware mpm、os/2 mpm、winnt mpm。   

3、怎麼知道apache當前用的是哪個mpm?

linux及windows下都可以使用命令:「httpd -l 」 進行查詢。

4、各個mpm是怎麼工作及如何優化?

(1)prefork mpm

startservers                10

minspareservers        10

maxspareservers        15

serverlimit                  2000

maxclients                   1000

maxrequestsperchild 10000

啟動時建立startservers個子程序,

然後按每秒建立指數級個程序直到達到minspareservers個程序(最多增到每秒32個),

如果空閒程序數大於maxspareservers,則檢查kill掉一些空閒程序。

maxrequestperchild指定每個程序處理了多少個請求後就自我毀滅。

maxclients指定apache最多可以同時處理的請求數,也就是程序數?

maxclients預設不能大於256,可以通過設定serverlimit來增大這個限制數,最大20000?

(2)worker:

startservers                  3

maxclients                     2000

serverlimit                    25

threadlimit                   200

threadsperchild            100

minsparethreads         50

maxsparethreads        200

maxrequestsperchild   0

啟動時建立startservers個子程序,

每個程序包含threadsperchild個執行緒,預設最大64

minsparethreads定義最小的空閒執行緒數,最大75

maxsparethreads定義最大的空閒執行緒數,超過則執行清理?最大250

maxclients定義所有子程序中的執行緒總數

threadlimit,最大20000,預設64

serverlimit,最大值20000,預設16

需要注意的是,如果顯式宣告了serverlimit,那麼它乘以threadsperchild的值必須大於等於maxclients,而且 maxclients必須是threadsperchild的整數倍,否則apache將會自動調節到乙個相應值(可能是個非期望值)。

(3)winnt mpm:

threadsperchild         500

maxrequestsperchild 10000

mpm_winnt.c是專門針對windows nt優化的mpm(多路處理模組),它使用乙個單獨的父程序產生乙個單獨的子程序,在這個子程序中輪流產生多個執行緒來處理請求。也就是說 mpm_winnt只能啟動父子兩個程序, 不能像linux下那樣同時啟動多個程序。

threadlimit,預設1920,最大15000,限制單個程序的執行緒總數。

Apache裡的 MPM 調優比較詳細

1 什麼是mpm?multi processing module mpm implements a hybrid multi process multi threaded server。多程序 多執行緒 2 有多少種mpm?大致有 prefork mpm worker mpm beos mpm ne...

apache高負載效能調優

先閱讀apache配置優化建議如下,再對相關引數進行調整,觀察伺服器狀況.apache配置優化建議 進入 usr local apache2 conf extra 目錄下 apache優化,經過上述操作後,apache已經能夠正常執行。但是,對於訪問量稍大的站點,apache的這些預設配置是無法滿足...

apache高負載效能調優

先閱讀apache配置優化建議如下,再對相關引數進行調整,觀察伺服器狀況.apache配置優化建議 進入 usr local apache2 conf extra 目錄下 apache優化,經過上述操作後,apache已經能夠正常執行。但是,對於訪問量稍大的站點,apache的這些預設配置是無法滿足...