Apache的httpd進程數量是個老問題,最開始使用Linux獨立服務器的時候就摸索修改過。後來新購入服務器托管、租用國外服務器都是硬件配置相當強的,這個地方也都修改過。
不過前一陣子搬遷到阿裡雲服務器的時候,同事并沒有修改這個地方,部分網站搬遷後感覺變慢了,而帶寬、CPU等資源都沒有用充分,後來在阿裡雲監控中檢查發現httpd進程會達到一個限制平頂,再才排查原來是httpd最大連接數量沒有修改。
最近又搬遷網站增加了阿裡雲服務器,以後估計還會搬遷、增加,所以專門記錄在博客中:
步驟一:先修改./apache/conf/httpd.conf文件。
# vi httpd.conf
将“#Include conf/extra/httpd-mpm.conf”前面的 # 去掉。
保存。
步驟二:再修改./apache/conf/extra/httpd-mpm.conf文件。
# vi httpd-mpm.conf
找到<IfModule mpm_prefork_module> 這一行
原:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
修改後
<IfModule mpm_prefork_module>
StartServers 20
MinSpareServers 20
MaxSpareServers 30
ServerLimit 500
MaxClients 500
MaxRequestsPerChild 10000
注意:1、一定要加ServerLimit,并且要在MaxClients前面,且數值要比MaxClient的值大;
2、重啟apache,僅僅/bin/apachectl restart無效,
需要先apachectl stop 然後再apachectl start
反複執行pgrep httpd|wc -l 來觀察連接數。
更多詳細資料可以參考:《Apache優化:修改最大并發連接數》。
评论4
祁老師,ServerLimit設置的是500
祁老師,ServerLimit設置的是500,MaxClients也是500,ServerLimit并沒有設置的比MaxClients大啊?我理解是大于等于的意思
你好!我理解是ServerLimit大于等于MaxClients的意思,用一樣的就可以。
OK,明白了。謝謝 動态網站優化是一項需要不斷鑽研的工作。
OK,明白了。謝謝 動态網站優化是一項需要不斷鑽研的工作。确實是這樣,各方面都要專研
Drupal網站的性能優化涉及到網站思路、邏輯設計、網絡架構、硬件配置、操作系統、數據庫、程序優化等各方面的問題,而且随着網站的發展需要不斷調整,我也總是在這方面花費很多時間精力!