我有这个设置:
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 1250 MaxClients 1250 MaxRequestsPerChild 1500 </IfModule>
可能的是,当我做最好的时候,对于最小/最大服务器的5-10设置,有大量的apache 2进程?
它们不应该只在5-10之间吗?
只看260过程睡眠O_O(d * mn apache)
单击http://img200.imageshack.us/img200/3285/senzatitolo1iw.jpg
EDIT1:
在这里30分钟后,屏幕顶部:
点击:http://img816.imageshack.us/img816/1645/immagineov.png
UP 24小时后(MEM使用的最高订购者)
谢谢你的任何解释
(debian 6,灯,4gb ram)
解决方法
我在
Server not responding to SSH and HTTP but ping works的评论中给了你答案,但显然你不相信我.真的,这是真的!
您需要将MaxClients / ServerLimit调整为您的系统.你提到的“最小/最大服务器的5-10设置”基本上是无关紧要的 – 这只是额外服务器的数量,而不是Apache将保留的任何东西.
为了正确设置MaxClients,请查看httpd(或apache2)进程的典型高水位标记,然后将可用内存除以.最好稍微下降,让系统的其余部分呼吸.由于你有4GB的RAM和185MB的进程,这意味着你的ServerLimit值最多应该是21 – 可能是20或19.
现在,可能190MB是非典型的.您可以根据对典型使用情况的不同估计将ServerLimit设置得更高,但是您基本上赌博的是您永远不会有峰值.如果确实发生了,您的系统将是out of memory.
如果你能找到一种方法来限制每个工人的内存使用量,那将是一场胜利.我打赌这是PHP Ate My RAM的情况.你能编写你的应用程序以生活在较低的memory_limit?如果你不能这样做,你需要一个不同的模型来运行你的PHP.如果你不能这样做,你需要购买更多的RAM.