Apache兩種常用工作模式比較:prefork和worker

prefork–Unix平臺上的默認(缺省)MPM,使用多個子進程,每個子進程只有一個線程。每個進程在某個確定的時間只能維持一個連接,效率高,但內存佔用量比較大。
worker–使用多個子進程,每個子進程有多個線程,每個線程在某個確定的時間只能維持一個連接,內存佔用量比較小,適合高流量的http服務器。缺點是假如一個線程崩潰,整個進程就會連同其任何線程一起”死掉”,所以要保證一個程式在運行時必須被系統識別爲”每個線程都是安全的”。
瞭解了這些個之後,怎麼才能知道你的Apache服務器工作在什麼狀態呢?使用“apachectl -l”命令就可以顯示出來。
Apache的默認的工作模式爲prefork,如何把它改成worker模式呢?
如果你還未編譯安裝,那就簡單了,在編譯的時候加個參數 “–with-mpm=worker”,就好了;
如果你想更改正在運行的Apache的工作模式:
1.將當前的prefork模式啓動文件改名
mv httpd httpd.prefork
2.將worker模式的啓動文件改名
mv httpd.worker httpd
3.修改Apache配置文件
vi /usr/local/apache2/conf/extra/httpd-mpm.conf
找到裏邊的如下一段,可適當修改負載等參數:
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
4.重新啓動服務
/usr/local/apache2/bin/apachectl restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章