debugging一个完整的崩溃/挂起?

我们正在Amazon EC2上运行一个Ubuntu实例,最近我们发生了一个意外的(当前无法解释的)崩溃(与最近的停机无关)。 问题基本上是机器不会对任何事情(SSH / HTTP)做出响应,尽pipeAWS控制台中的所有内容都表明实例运行正常(CloudWatch中的CPU使用率为0)。

最终,我们已经采取了重启这个似乎已经恢复的事例。 我有:

  • 检查了我所能想到的所有日志( dmesgsyslog等),并找不到任何错误-y;
  • 重新启动机器之前从aws控制台检查系统日志,没有任何错误-y;
  • 看着CloudWatch,我看不到任何不合适的地方,CPU利用率似乎突然下降到0,没有出现任何尖峰。 所有其他指标也稳定;
  • 确保实例上有足够的存储空间(因此不会出现硬盘内存错误)。

我不知道还有什么要做/检查。

有什么我可以做,以防止这种情况再次发生? 它造成了我们相当多的停机时间。 如果不是,如果再次发生,我该怎么办? 除了重启之外,还有其他的东西


更新

这是做了一遍。 这个实例几个星期前刚装好(在亚马逊停电之后不久)。 它运行得很好,直到它刚刚没有反应的时刻。 再次,有人在10分钟前login,运行htop ,一切都很好。


更新#2

它再次坠毁。 以下是AWS CloudWatch的一些图表(我们有EBS卷,一个用于启动,一个用于数据):

1. DiskReadBytes(实例度量)

DiskReadBytes

注意:挂起发生在接近19:00的峰值之后

2. VolumeReadBytes(EBS度量,数据EBS)

VolumeReadBytes

3. VolumeReadBytes(EBS度量,引导EBS)

VolumeReadBytes

我不知道中断的行是什么意思。

未经修改的Ubuntu不太可能会这样做,我会怀疑其中一个添加的应用程序导致了这一点。 我没有注意到你的列表中的RAM使用情况,也许值得使用cron将每小时的输出存储在一个日志文件中。 你可能只是有泄漏或没有足够的内存。