我有一个 Apache 服务器,由于某种原因挂起了。当我通常想要检查 Apache 服务器的负载时,我倾向于使用mod_status通过以下网址http://webserver1.example.org/server-status或从命令行像service httpd fullstatus
。
但是今天,服务器拒绝所有新连接。一些神秘的问题导致连接停滞,这意味着连接数填满了所有可用连接(例如,连接数超过设置MaxClients
),因此http://webserver1.example.org/server-status也service httpd fullstatus
无法返回任何东西。
是否可以配置 Apache 来为 mod_status 页面保留一个或两个插槽?
答案1
请参见这个相关问题和@covener 的链接答案。您可以采取两种方法来处理您的问题。
- 检查 mod_backdoor(描述和来源) 提供了一个提供记分牌的特殊端口,即使所有插槽都在使用中。
- 用一个记分牌文件它通过共享内存提供记分牌。您必须使用一个工具(即Apache2-ScoreBoard文件或者金融时报) 来解析二进制数据。
两种解决方案都相当复杂,但选项 2 由于共享内存而允许实时访问。
另外我打开了错误报告在 apache bugzilla。
答案2
连接数超出 MaxClients 设置
如果这不是由服务器流量过大或 MaxClients 设置过低(默认值通常就可以)引起的,那么问题可能是由 Apache 之外的原因引起的,而服务器状态对排除故障没有太大帮助。
话虽如此,当根文件系统的可用空间不足时,我确实看到了您描述的确切行为。尝试df -h
查看磁盘空间是否不足。