MaxClients的MinSpareThreads,考虑提高MaxClients设置

昨天我的项目出了问题。 它甚至不能从浏览器打开。 重启apache后问题解决了。 之后,我检查了Apache日志,发现了follwing行。

[error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting 

有人可以解释这个消息是什么意思? 会导致这样的问题吗?

我是否真的需要增加MaxClients,或者更好地了解导致服务器到达MaxClients的原因。

Apache可以处理的并发连接数量有限制。 此限制由MaxClients设置。 当服务器达到同时连接数时,任何后续连接都将无法处理,直到其中一个现有连接closures。

您还有一个名为MinSpareThreads的设置,它告诉服务器应该启动多less个线程,等待一个新的连接。 所以我们假设你的服务器是这样设置的:

  MaxClients 100 MinSpareThreads 5 

然后,服务器将尝试始终准备好5个线程并等待连接。 但是,一旦你有95个用户同时连接,你只剩下5个空间,所以一旦下一个客户端连接,服务器将不再能够创build更多的备用线程 – 所以日志消息告诉你,它是越来越接近MaxClients设置。

了解服务器到达MaxClients的原因总是一个好主意。 它的价值应该足够高,足以承担正常的负载+合理的stream量峰值,但是足够低,即使有人试图DOS你的networking服务器,Apache也不会耗尽你的所有内存和CPU。 为了找出最佳值,你需要做一些负载testing。