分类: LINUX
2010-03-23 17:56:23
Apache2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。
首先要做的是确认apache的工作模式 prefork?还是其他的,一般默认的就是prefork,如果不确定,有一个简单的办法可以测试出来。
修改每种工作模式的startserver值(不重复),然后重起apache,执行ps aux | grep http看看有几个apache进程,就能知道对应的那种工作模式。
有两处是需要密切注意的:
1。ServerLimit 2000 这一行要放在段的最上面
2。必须要stop然后再start才能生效。restart是无效的。
下面是我的prefork配置段。
ServerLimit 2000
StartServers 10
MinSpareServers 10
MaxSpareServers 15
MaxClients 1500
MaxRequestsPerChild 10000
ServerLimit的最大值是20000,这对于大多数站点一级绝大多数服务器来说是足够了,但如果你一定要再加大的话,那么这个值位于源代码树下的server/mpm/prefork/prefork.c中。里面的
#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
这两行就对应着MaxClients和ServerLimit的限制值。但我相信很少有人可以用到20000的并发连接数。
#注:在apache2.2中,连接数要要在安装初始的时候要更改的。