尽管 Apache 进程仍在运行,但 Apache 有时似乎会停止响应。
重新启动 apache 后,平均负载通常会在几秒钟内从 1 - 2 上升到 13 - 15。
这是什么原因造成的,或者我如何才能找出 Apache 停止服务的原因?
我的httpd.conf是:
<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 50
ServerLimit 50
MaxRequestsPerChild 4000
</IfModule>
它在 EC2 c1.medium(1.7 GB 内存)上运行
谢谢
答案1
50 maxclients 与不过期的 http 会话相结合。增加您的 maxclients。
答案2
遗憾的是,这个问题的答案并不那么简单。它可能有很多原因。
但我会这样做
- 卸载应用程序不需要的所有模块
- 删除所有虚拟主机,看看它是否仍然存在。
- 关闭除 sshd 之外的所有服务并重新启动 apache,结果是否相同? 某些服务可以与 apache 交互。
- 更新 apache 和所有模块。
我要考虑的另一件事是进程启动存在问题。我曾经见过一台配置不当的服务器,它有 125 个备用服务器,重新启动服务需要 5 分钟才能启动备用服务器。我知道你没有那么多,但如果启动线程需要太多资源或挂起,这可能是你的服务停止工作的根源。
尝试降低备用服务器数量,看看负载是否降低,尝试增加备用服务器数量,看看负载是否升高。但我仍然会考虑更新。
祝你好运!