”apache“ 撑不住了?

”apache“ 撑不住了?

兄弟们,最近公司的动态网站总是出现连接数过多,导致图片不能正常访问:

小弟的配置如下:
<IfModule prefork.c>
ServerLimit         2000
StartServers        15
MinSpareServers     15
MaxSpareServers     20
MaxClients          2000
MaxRequestsPerChild 10000
</IfModule>

我用
ps aux |grep httpd |wc -l
2006
现在很容易达到最大上限,小弟有个疑问?

1,我可以不增加MaxClients,能否增加 MinSpareServers 和 MaxSpareServers 来缓解当前情况?
2,请问,怎么参考一个标准来进行设置

谢谢大家了!
你没有说明你的mpm是跑在什么模式下,那我就当它是prefork
1.不能
MinSpareServers 和 MaxSpareServers 是设置最大最小空闲子进程数,你需要加大MaxClients,

对于非线程型的MPM(也就是prefork),MaxClients表示可以用于伺服客户端请求的最大子进程数量,默认值是256。要增大这个值,你必须同时增大ServerLimit 。

使用这个指令时要特别当心。如果将ServerLimit设置成一个高出实际需要许多的值,将会有过多的共享内存被分配。如果将ServerLimit和MaxClients设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。

对于preforkMPM,只有在你需要将MaxClients设置成高于默认值256的时候才需要使用这个指令。要将此指令的值保持和MaxClients一样。

都是在apache手册里摘录的句子,请LZ参考

2.偶没实际经验,请高人指点把,但我认为这个标准取决与机器的性能,只要你内存够cpu顶得住ServerLimit最大是可以去到20000的。
servrelimit指系统限制最大的进程数,默认值很小如果MaxClients设的比unix默认servrelimit还大,就无效,返回默认值。因此servrelimit肯定要远大于apache的MaxClients
<IfModule prefork.c>;
serverlimit 768
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 384
MaxRequestsPerChild 0
</IfModule>;
什么系统?