昨天我的项目有问题。它甚至无法从浏览器打开。重启apache后问题解决。之后,我检查了 apache 日志并找到了以下几行。
[error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting
Run Code Online (Sandbox Code Playgroud)
有人可以解释此消息的含义吗?会不会导致这样的问题。
我真的需要增加 MaxClients 还是最好了解是什么导致服务器到达 MaxClients ..
Apache 对它可以处理的并发连接数有限制。此限制是通过 MaxClients 设置的。当服务器达到该并发连接数时,在现有连接之一关闭之前,无法处理任何后续连接。
您还有一个名为 MinSpareThreads 的设置,它告诉服务器应该启动多少个线程来等待新连接。假设您的服务器设置如下:
MaxClients 100
MinSpareThreads 5
Run Code Online (Sandbox Code Playgroud)
然后,服务器将尝试始终有 5 个线程准备就绪并等待连接。但是,一旦有 95 个用户同时连接,您就只剩下另外 5 个用户的空间,因此一旦下一个客户端连接,服务器将无法再创建任何更多的备用线程 - 因此日志消息告诉您,它是接近 MaxClients 设置。
了解服务器为何达到 MaxClients 总是一个好主意。它的值应该足够高,能够满足正常负载+合理的流量峰值,但又足够低,即使有人试图对你的 Web 服务器进行 DOS,apache 也不会因为服务太多客户而耗尽你所有的内存和 CPU。要找出最佳值,您需要进行一些负载测试。
| 归档时间: |
|
| 查看次数: |
16326 次 |
| 最近记录: |