网站反应慢不一定是程序或数据库的问题,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 //并发连接数