網站反應慢不一定是程序或數據庫的問題,apache並發數量設置有問題的話同樣會導致當網站訪問量過大的時候出現請求特別慢或失敗的問題,那麼該如何設置apache的並發數量呢?
1、在httpd.conf文件中修改
#Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
將上面一句的#注釋去掉
2、確定當前的apache是什麼MPM模式(winnt模式,perfork模式,worker模式)
進入到apache/bin目錄
cmd命令:httpd.exe -1
說明:看mpm_xxx.c 如果xxx是winnt 說明是winnt,另外還可能是perfork或者worker
3、修改httpd-mpm.conf文件
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt_module>
ThreadsPerChild 150 //修改這個值即可
MaxRequestsPerChild 0
</IfModule>
4、重啟apache,測試看看
在Linux下,一般采用的MPM是perfork模式
<IfModule mpm_prefork_module>
StartServers 5 //預先起5個進程
MinSpareServers 5 //最小空閒進程
MaxSpareServers 10 //最大空閒進程
MaxClients 150 //並發連接數
MaxRequestsPerChild 0 //指一個進程裡可以起多少個線程,對worker更好,0為不限制
</IfModule>
給大家一個合理的建議配置,對在部分網站,中型網站,配置:
<IfModule mpm_prefork_module>
StartServers 5 //預先起5個進程
MinSpareServers 5 //最小空閒進程
MaxSpareServers 10 //最大空閒進程
ServerLimit 1500 // 用於修改apache編程參數
MaxClients 1000 //並發連接數
MaxRequestsPerChild 0 //指一個進程裡可以起多少個線程,對worker更好,0為不限制
</IfModule>
如果你的網站pv值百萬,可以這樣設置:
ServerLimit 2500 // 用於修改apache編程參數
MaxClients 2000 //並發連接數