降低Serverlimit不会限制prefork MPM上的进程数量

我将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

如果发布在这里。