深入理解apahce的工作模式perfork、worker

來源:互聯網
上載者:User

prefork模式使用多個子進程,每個子進程只有一個線程。每個進程在某個確定的時間只能維持一個串連。在大多數平台上,Prefork MPM在效率上要比Worker MPM要高,但是記憶體使用量大得多。prefork的無線程設計在某些情況下將比worker更有優勢:它可以使用那些沒有處理好安全執行緒的第三方模組,並 且對於那些線程調試困難的平台而言,它也更容易調試一些。

worker模式使用多個子進程,每個子進程有多個線程。每個線程在某個確定的時間只能維持一個串連。通常來說,在一個高流量的HTTP伺服器 上,Worker MPM是個比較好的選擇,因為Worker MPM的記憶體使用量比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一個線程崩潰,整個進程就會連同其所有線程一起”死掉”.由於線程共用記憶體空間,所以一個程式在運行時必須被系統識別為”每 個線程都是安全的”。

prefork方式速度要稍高於worker,然而它需要的cpu和memory資源也稍多於woker。

查看現使用的工作模式:
apachectl -l

兩種模式設定檔+說明:
perfork模式:

複製代碼 代碼如下:<IfModule mpm_prefork_module>
ServerLimit 2000
#串連數大於256需設定此項。20000是ServerLimit這個參數的最大值
StartServers 5
#初始化時建立的子進程數。prefork預設為5
MinSpareServers 10
#最小的空閑進程數
MaxSpareServers 15
#最大的空閑進程數
MaxClients 1000
#最大並發用戶端串連數上限
MaxRequestsPerChild 10000
#控制伺服器殺死舊進程產生新進程的頻率
#將MaxRequestsPerChild設定成非零值有兩個好處:
#1.可以防止(偶然的)記憶體流失無限進行,從而耗盡記憶體。
#2.給進程一個有限壽命,從而有助於當伺服器負載減輕的時候減少活動進程的數量。
</IfModule>

worker模式:

複製代碼 代碼如下:<IfModule mpm_worker_module>
StartServers 3
#初始化時建立的子進程數
MaxClients 2000
#最大平行處理數量。子進程最大數量=MaxClients/ThreadsPerChild
ServerLimit 25
#只有在你需要將MaxClients和ThreadsPerChild設定成需要超過預設值16個子進程的時候才需要使用這個指令。不要將該指令的值設定的比MaxClients 和ThreadsPerChild需要的子進程數量高。
MinSpareThreads 50
#最少空線程數
MaxSpareThreads 200
#最大空閑線程數
ThreadLimit 200
#這個指令設定了每個子進程可配置的線程數ThreadsPerChild上限,該指令的值應當和ThreadsPerChild可能達到的最大值保持一致。
ThreadsPerChild 100
#子進程建立的服務線程數
MaxRequestsPerChild 0
#設定每個子進程在其生存期內允許伺服的最大請求數量。到達MaxRequestsPerChild的限制後,子進程將會結束。如果MaxRequestsPerChild為"0",子進程將永遠不會結束。
</IfModule>

工作模式修改方法:
重新編譯指定工作模式(預設為prefork)

複製代碼 代碼如下:./configure --with-mpm=worker

注意:
對工作模式相關參數做出更改後,必須關閉apache服務後重新啟動服務方可。
直接利用restart啟動將是無效的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.