今天在已经编译好的apache2.0.48(mpm为默认的prefork)想改大MaxClient的大小超过256,在网上论坛上看说如下增加serverlimit一行就行了。
<IfModule prefork.c>;
StartServers 10
MinSpareServers 10
MaxSpareServers 15
[color=darkred]ServerLimit 2000 [/color]
MaxClients 1000
MaxRequestsPerChild 10000
</IfModule>;
但如上所说加了一行,还是不行,提示MaxClient超过256,须添加ServerLimit参数才行。
郁闷了很久,我就估计是ServerLimit一行没生效,又google一下,翻过千山万水,终于找到原因
需要把ServerLimit放到最前面,如下就行了
<IfModule prefork.c>;
[color=darkred]ServerLimit 2000[/color]
StartServers 10
MinSpareServers 10
MaxSpareServers 15
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>;
小弟,得到此大法后,不敢独享,特别的给大家提醒一下.
creat7151 回复于:2005-09-09 13:30:49
谢谢,收下,让后来人少走不少弯路
hfh08 回复于:2005-09-09 19:54:08
这个文件在什么位置的
ipaddr 回复于:2005-09-09 22:18:26
httpd.conf
你安装在哪,就是在哪的。
Liunux,一般在/etc/httpd/conf/httpd.conf/ (RPM安装)
/usr/local/apache2/conf/httpd.cond (编译安装)
rickyfang 回复于:2005-09-15 20:10:33
在Apache2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。下面是笔者的prefork配置段。
<IfModule prefork.c>;
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>;
BTW: ServerLimit的最大值是20000,这对于大多数站点是足够了,但如果你一定要再加大的话,那么这个值位于源代码树下的server/mpm/prefork/prefork.c中。里面的
#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
这两行就对应着MaxClients和ServerLimit的限制值。但我相信很少有人可以用到20000的并发连接数。
如果你有耐性看完了我这篇文档,我相信您对Apache2.0 缺省的prefork的工作原理有所熟悉了,理解了它的工作过程后,就可以根据您的实际情况在FreeBSD下来配置Apache相关的核心参数以获得最大的性能。
rickyfang 回复于:2005-09-15 20:11:59
http://bbs.chinaunix.net/forum/viewtopic.php?t=316171&highlight=rickyfang
这个问题,很早就有了,你可以查下,呵呵,好像有点不同哟!
ipaddr 回复于:2005-09-15 20:45:27
好象,有ServerLimit,可以不要MaxClient
|