如何配置apache最大的并發(fā)數(shù)
MPM(多路處理模塊),經(jīng)過(guò)適當(dāng)?shù)呐渲?,可以提高服?wù)器的負(fù)載能力。
原理是通過(guò)增加服務(wù)進(jìn)程數(shù)量使服務(wù)器可以同時(shí)處理更多用戶(hù)請(qǐng)求。
常見(jiàn):
1.perfork 預(yù)處理進(jìn)程方式
2.worker 工作者模式
3.winnt 在windows使用
案例:把a(bǔ)pache的最大并發(fā)數(shù)配置成1000個(gè)
1.首先確認(rèn)apache的mpm方式
cmd>httpd.exe -l 可以看到是什么模式了
這里就看mpm_xxx.c這個(gè)xxx就是那個(gè)了
2.修改httpd.conf文件
搜索mpm,找到 Server-pool management(MPM specific)
去掉# Include conf/extra/httpd-mpm.conf
3.修改conf/extra/httpd-mpm.conf文件
prefork模式就修改這里
<IfModule mpp_prefork_module>
StartServers 5 # 預(yù)先開(kāi)啟的進(jìn)程
MinSpareServers 5# 最小預(yù)留5個(gè)
MaxSpareServers 10 # 最大留10
MaxClients 150 # 最多并發(fā)多少個(gè) *
MaxRequestsPerChild 0 # 最多請(qǐng)求多少次 0不限制
</IfModule>
winnt模式
<IfModule mpm_winnt_module>
ThreadsPerChild 150 # 最大并發(fā)數(shù) *
MaxRequestsPerChild 0 # 最多處理多少次請(qǐng)求 0不限制
</IfModule>
修改后面有*的那個(gè)字段的數(shù)值然后重新啟動(dòng)apache
說(shuō)明:配置到多大,不一定就可能支撐這么大的并發(fā),考慮到本身apache所在的機(jī)器硬件性能(如:內(nèi)存,CPU,硬盤(pán)IO)
系統(tǒng)是linux/unix,配置perfork
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150 *#并發(fā)量
MaxRequestsPerChild 0
</IfModule>
給大家一個(gè)合理的建議配置,對(duì)大部份網(wǎng)站,中型網(wǎng)站配置
<IfModule mpm_prefork_module>
StartServers 5 # 預(yù)先啟動(dòng)
MinSpareServers 5
MaxSpareServers 10 # 最大空閑進(jìn)程
ServerLimit 1500 *# 用于修改apache編程參數(shù)
MaxClients 1000 *# 最大并發(fā)數(shù)
MaxRequestsPerChild 0
</IfModule>
注:apache2.2以后才有的ServerLimit這個(gè)參數(shù),其中ServerLimit數(shù)值大于MaxClients數(shù)值
如果網(wǎng)站的pv值 百萬(wàn)
ServerLimit 2500 *# 用于修改apache編程參數(shù)
MaxClients 2000 *# 最大并發(fā)數(shù)