Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309960
  • 博文数量: 63
  • 博客积分: 1997
  • 博客等级: 上尉
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 11:17
文章分类

全部博文(63)

文章存档

2010年(26)

2009年(37)

我的朋友

分类: 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中,连接数要要在安装初始的时候要更改的。

阅读(1130) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~