日期:2014-05-17 浏览次数:20761 次
修改apache的最大连接数,方法如下:
步骤一
先修改 /path/apache/conf/httpd.conf文件。
# vi httpd.conf
将“#Include conf/extra/httpd-mpm.conf”前面的 “#” 去掉,保存。
步骤二
再修改 /path/apache/conf/extra/httpd-mpm.conf文件。
# vi httpd-mpm.conf
找到 这一行
原:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
修改后
ServerLimit 1000 #最大并发
StartServers 10 #默认启动线程数
MinSpareServers 5
MaxSpareServers 15
MaxClients 1000 #apache可以同时处理的请求
ThreadsPerChild 250 #每个进程的线程数,子进程在启动时建立这些线程后就不再建立新的线程了。 默认值是64, 最大值是1920
MaxRequestsPerChild 5000 #默认0 官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命, #从而有助于当服务器负载减轻的时候减少活动进程的数量。
注意:
ServerLimit 该指令一定要放在第一行。
修改后,一定不要apachectl restart,而是先 apachectl stop 然后再 apachectl start才可以。
---------------------------------------------------------------
如果你按照上面做的话,你会发现好像没什么效果(至少我是这样),因为win2003下并不是使用mpm_prefork_module ,而是mpm_winnt_module ,ServerLimit 1000在是mpm_winnt_module下是无效的,找了一个下午没有找到增大window下apahce并发数的方法,猜测可能和最大并发数也就是服务器的最大连接数?
2011-8-27
今天又琢磨了一下,还是修改 conf/extra/httpd-mpm.conf 文件,既然windows下是用 mpm_winnt_module ,那就修改这个试一试
我的默认是
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
ab测试并发大概在250左右时就不行了。
尝试修改
ThreadsPerChild 250
MaxRequestsPerChild 5000
ab测试大概在 300多不行,修改 ThreadsPerChild 还是有效果的
好像最大并发数大概是ThreadsPerChild 的1.5倍(瞎猜的,你试试)
?