亚马逊EC2微实例无响应

8

我有几个微型实例,已经运行了几周,都是用WordPress博客。但在过去的24小时里,其中一个实例停止了工作。即使重新启动后,我也无法通过ssh登录进去。另一个实例运行正常。

ssh: connect to host ec2-xxx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com port 22: Operation timed out

日志中没有明显的问题。最后几行是:

cloud-init:  runcmd[  OK  ]
Mounting other filesystems:  [  OK  ]
Retrigger failed udev events[  OK  ]
Generating SSH1 RSA host key: [  OK  ]
Starting sshd: [  OK  ]
Starting ntpd: [  OK  ]
Starting sendmail: [  OK  ]
Starting sm-client: [  OK  ]
Starting crond: [  OK  ]
[  OK  ]
Starting atd: [  OK  ]
Starting yum-updatesd: [  OK  ]
Running cloud-init user-scripts (none found)[  OK  ]
Amazon Linux AMI release 2011.02.1.1 (beta)
Kernel 2.6.35.11-83.9.amzn1.i686 on an i686
ip-xx-xxx-xx-xx login:

管理控制台显示一切都在运行和正常。
我在两个实例上使用相同的安全组和.pem文件。
我怀疑这个实例比另一个实例收到更多的流量。微型实例是否会耗尽内存并停止响应?可能出了什么问题?
这里是监控面板的屏幕截图。(点击查看)
谢谢。
3个回答

16

我曾看到微型实例由于CPU过度占用而锁定数分钟,这是微型实例独有的"窃取"现象。我在这里发表了一个例子(包括视频)。

只需将实例完全停止然后重新启动即可将其移动到新资源上,并将分配新的IP地址(不要忘记重新关联您的弹性IP!)。 主机重启无法完成此操作,需要通过EC2控制台停止。 终止实例不是必需的。


这对我有用。在EC2控制台中有一个选项可以重新启动实例,我不需要重新关联IP。 - Kevin Beal
1
非常感谢……因为这个我刚刚失去了整个网站……我点击了停止……然后在它停止后我点击了开始……然后它就直接进入了终止模式,现在我没有网站了。显然也没有卷或备份。 - MIke

6
有几种可能性,但最有可能的两种是:
  1. 主机负载过高,导致您的微型实例获得的资源非常少,当主机负载过高时会被强制缩减。

  2. 主机发生故障,影响虚拟机的响应速度 - 这实际上是比较常见的情况,并且可能展现出您正在看到的行为。

在任何一种情况下,最快的解决方案是销毁该实例并重新启动它 - 您很可能会在不同的主机上获得一个新实例,这可能会更轻松或更完整。 ;)


感谢您的回复。几个小时后,我又能够通过ssh登录并重新启动httpd和mysqld了。不确定问题出在哪里。您是指终止该实例并启动另一个实例吗?如果这样做,我能保存其中的数据吗? - danjp
2
我确实是指你应该终止问题实例并创建一个新的实例 - 但是要注意,当你终止实例时,仅存储在实例临时存储中的任何数据都将会丢失。如果你希望保留任何数据,请将其移动到已附加的EBS卷中 - 这个卷是持久的,不会在你停止实例时被销毁。然后,当新实例启动时,你可以将它附加到新实例上。如果你对实例和临时存储的寿命不确定,请先阅读相关资料,如果你的数据很重要,请确保备份。 - Eight-Bit Guru
谢谢Jonners。显然它有一个潜在的硬件问题,必须重新启动。 - danjp
1
快进到2013年:如果实例是从EBS支持的AMI启动的(这是典型情况),那么你可以简单地停止并重新启动EC2实例(而不是终止和重新启动)。这可能会导致它在新的物理硬件上重新启动,而你的实例将保持完好。还要注意,t1.micro实例不适合任何类型的生产工作负载。 - jarmod

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接