我有一个 Ubuntu EC2 实例 (t1.micro,600mb RAM),在 Apache 上运行 mod_wsgi,用于为 Django 应用程序提供服务。这一切都在负载均衡器后面。
我一直遇到的问题是,我的网站似乎只能正常运行几天,然后我的网站就会瘫痪,并开始出现 503 状态。我的记录是 4 周左右没有停机。重新启动 apache 没有帮助,我通常必须完全停止并重新启动 EC2 实例。
我尝试使用 Dowser 来诊断内存泄漏,但没有任何发现。我尝试调整 mpm_prefork 设置。我没有使用任何 C 扩展模块,任何外部 API 调用都设置了超时,而且我只有两个每天运行一次的 cron 作业。我的访问日志没有显示任何表明存在 DDOS 的异常情况。
我完全不知道是什么原因导致服务器不断宕机。
以下是停机期间 apachectl status 的输出:
以下是同时 htop 的输出:
这些是我的预分叉设置:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 40
MaxConnectionsPerChild 0
</IfModule>
我是否应该升级到更大的 EC2 实例?或者升级 mod_wsgi(因为我使用的是旧版本)?我已经从 Django 角度尝试了所有方法,所以我开始认为我只是 mod_wsgi 配置不正确……