MinSpareThreads 为 MaxClients,请考虑提高 MaxClients 设置

MinSpareThreads 为 MaxClients,请考虑提高 MaxClients 设置

昨天我的项目出了点问题。甚至无法从浏览器打开。重启 Apache 后问题解决。之后我检查了 Apache 日志,发现了以下几行。

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

有人能解释一下这个消息是什么意思吗?它会导致这样的问题吗?

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

答案1

Apache 对可以处理的并发连接数有限制。此限制由 MaxClients 设置。当服务器达到该并发连接数时,除非关闭现有连接之一,否则无法处理任何后续连接。

您还有一个名为 MinSpareThreads 的设置,它告诉服务器应启动多少个线程来等待新连接。假设您的服务器设置如下:

 MaxClients 100
 MinSpareThreads 5

然后,服务器将尝试始终让 5 个线程准备就绪并等待连接。但是一旦有 95 个用户同时连接,您就只能再容纳 5 个了,因此一旦下一个客户端连接,服务器将不再能够创建任何备用线程 - 因此日志消息告诉您它已接近 MaxClients 设置。

了解服务器达到 MaxClients 的原因始终是一个好主意。该值应足够高,以应对正常负载 + 合理的流量峰值,但又要足够低,以便即使有人试图对您的 Web 服务器进行 DOS 攻击,Apache 也不会因为服务过多客户而耗尽您的所有内存和 CPU。要找出最佳值,您需要进行一些负载测试。

相关内容