Apache裡的 MPM 調優比較詳細

2021-07-05 21:14:00 字數 1831 閱讀 7022

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負載調優 watch n 1 d pgrep httpd wc l apache動態檢視連線數 ps aux grep httpd wc l ps aux grep v grep awk httpd end 檢視apache占用記憶體平均數 vim etc sysctl.conf 編輯檔...

Apache調優及配置

keepalivetimeout 5 持續作用中伺服器在兩次請求之間等待的時間數 maxkeepaliverequests 3000 乙個長連線中允許的最高請求數量 minspareservers 5 自己翻譯 充許最小的空閒程序 maxspareservers 10 自己翻譯 充許最大的空閒程序 ...