我们在 Amazon EC2 上运行 Ubuntu 实例,最近发生了意外(目前无法解释)崩溃(与他们最近的中断无关)。问题基本上是机器无法响应任何内容(SSH / HTTP),尽管 AWS 控制台中的所有内容都表明实例运行良好(CloudWatch 中的 CPU 使用率为 0)。
最终,我们只好重启实例,目前看来已经恢复了。我已经:
- 检查了我能想到的所有日志(
dmesg
、syslog
等等),没有发现任何错误; - 从 aws 控制台检查系统日志前重新启动机器,没有任何错误;
- 查看了 CloudWatch,我没有发现任何异常,CPU 利用率似乎突然降至 0,之前没有任何峰值。所有其他指标也都很稳定;
- 确保实例上有足够的存储空间(这样就不会发生硬盘内存不足的错误)。
我不知道还能做什么/检查什么。
我能做些什么来防止这种情况再次发生?这已经导致我们停机很长时间。如果不行,如果再次发生这种情况我该怎么办?除了重启之外还有其他方法吗?
更新
它又出现了。该实例是在几周前安装的(亚马逊停电后不久)。它运行良好,直到某一刻突然没有响应。同样,10 分钟前有人登录过,运行正常,htop
一切正常。
更新 #2
它又崩溃了。以下是来自 AWS CloudWatch 的一些图表(我们有两个 EBS 卷,一个用于启动,一个用于数据):
1.DiskReadBytes(实例指标)
笔记:挂起发生在接近 19:00 的峰值之后
2.VolumeReadBytes(EBS 指标,数据 EBS)
3.VolumeReadBytes(EBS 指标,启动 EBS)
我不知道中断的线路意味着什么。
答案1
未经修改的 Ubuntu 不太可能出现这种情况,我怀疑是某个添加的应用程序导致了这种情况。我没有注意到您的列表中的 RAM 使用情况,也许值得使用 cron 将每小时的 top 输出存储在日志文件中。您可能只是有泄漏或 RAM 不足。