我将ServerLimt设置为15,将MaxClients设置为8,但是我偶尔会看到150个Apache进程。 怎么来的?
我有Apache / 2.4.7(Ubuntu),MPM:prefork
StartServers 1 MinSpareServers 1 MaxSpareServers 2 Serverlimit 15 MaxClients 8 MaxRequestsPerChild 50
在启动服务器后不久,我可以看到11个Apache进程:一个父进程和10个subprocess。 基于此,我假设10个subprocess中的8个是因为“MaxClients”设置,另外2个是由于我设置了“MaxSpareServers = 2”而产生的。
现在,进程的数量有点超过了15个。我不明白Serverlimit是如何发生的。但是,真正的问题是偶尔进程的数量会增加到150个,耗尽内存。
文档中说:“使用prefork MPM时,只有当您需要将MaxClients设置为高于256(默认值)时才使用此指令。不要将此指令的值设置为高于您可能要设置MaxClients的值。
第一句话似乎说我不应该碰它,但第二句似乎build议我应该把它与MaxClients相匹配。
底线:如果Serverlimit不起作用,我还可以如何设置对Apache进程数量的硬性限制。
你确定apache正在读取正确的configuration文件和/或你正在使用prefork mpm吗?
检查实际configuration(特别是mpm和你写的):
apache2ctl -S
如果发布在这里。