![ec2 内存不足,Apache 随机峰值](https://linux22.com/image/728294/ec2%20%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%EF%BC%8CApache%20%E9%9A%8F%E6%9C%BA%E5%B3%B0%E5%80%BC.png)
在过去的一年里,我们持续出现随机峰值,导致 apache 使用所有内存并进行交换。
服务器正常运行时间
我有一个最近一次崩溃的例子(UTC 时间上午 5:30 - 下午 12:00)。
OOM 内核转储
EC2 日志
RDS 日志
崩溃前的 404 错误
我不想增加 ec2 实例资源,因为在正常情况下它足以处理流量。
我可以采取什么措施来记录这些峰值的来源,并采取解决方案来防止这些峰值导致网站崩溃?
更新
我可以确认,前两次崩溃都是在属于网宿科技的一组 IP 地址发出大量 404 请求之后立即发生的。
更新 2:
通过减少提供 404 页面所需的内存解决了该问题。
答案1
查看崩溃前后的 Apache 日志会很有启发。您可能执行了一些简单的 cron 作业,导致 Apache 服务崩溃,或者您可能启用了 Apache 以仅接受指定数量的并发连接,而您的用户群在一天中的不同时间涌入,导致达到此限制。
您甚至可能正在运行日志轮换,这会导致资源激增。如果没有 Apache 错误日志,就无法确定,但这些是可以检查的一些可能性。