对 Amazon EC2 上的神秘服务器冻结进行故障排除

pjo*_*son 6 lamp amazon-ec2

我有一个在 Ubuntu Natty/11.04 上运行 LAMP 的 Amazon EC2 实例。在过去几个月内的三个不同场合,其中两个在过去两周内,服务器刚刚……停止了。它变得无响应并停止响应连接尝试(SSH 或其他方式),但 EC2 控制面板仍将其报告为正在运行。每次我不得不通过控制台重启实例,随之而来的数据丢失。

所以,现在我正在尝试诊断这个问题,但我却是一片空白,我需要关于要检查什么的建议。Syslog 不包含任何可疑内容——每次发生的最后一件事都是 munin 运行其常规的 5 分钟 cronjob,尽管由于我不知道机器何时停止工作,我不能说 cron 日志有多接近到冻结的地步。在那之后,就好像机器在重新启动之前根本没有运行,在此之后 syslog 包含在我看来像正常 dmesg 输出的内容。

交通量和这些冻结的时间之间似乎没有相关性。每个场合都远离高峰交通时间。

我还可以查看什么来尝试找出导致这些问题的原因?可能是什么问题?

附录:服务器在任何情况下停机时都没有承受过重的负载。CPU 和内存使用都在限制范围内,而且安全无虞。有足够的可用磁盘空间(数十 GB)。Apache 或 MySQL 日志也没有什么奇怪的,它们只是在那时停止运行。这是一个中/高 CPU 实例。

Zuh*_*aib 4

您应该做的第一件事是设置一些监控,以便让您知道服务器何时变得无响应。您可以通过使用 pingdom 和/或 cloudwatch 检查服务正常运行时间和系统统计信息(例如 cpu 和 ram)来完成此操作。两者都有针对小账户的免费计划。这将使您能够在故障发生时了解情况,并且可以更轻松地查找日志以了解当时发生的情况。通常这样的事情可能是由于系统没有足够的资源引起的,你没有提到你的实例的大小是多少,但是像微控制器这样的东西可能只是通过一个简单的 cron 作业来占用 100% 的 cpu,此时服务器就会锁定。

还要检查系统日志旁边的其他日志,检查所有应用程序日志,看看其中是否有任何日志在系统崩溃之前抛出错误。

  • 在这种情况下,您可能只是遇到了一个坏实例。AWS 并没有对此说太多,但由于我工作的公司几乎都是 AWS,我们很少会看到服务器被部署在一个坏实例上,可能是因为他们过度配置了盒子。在这种情况下,您唯一的选择是新实例并移动。 (2认同)