如何监控EC2实例的CPU使用情况,如果长时间保持100%,请重新启动它?

每隔一段时间(也许每三个月一次),突然间我们的实例获得100%的CPU使用率并locking,并且变得非常没有响应。

我想find一种方法来检测这种情况,并重新启动; 达到这个目标的最好方法是什么?

我们有一个CloudWatch订阅。 我们正在运行Ubuntu Server 10.04。

认真解决这个问题。 可能有很多原因你的CPU使用率达到100%,重新启动服务器或者当这种情况发生时会导致杀死进程只是一场灾难。 如果这是第三方实用程序 – 可以在此列出或者向维护人员报告错误。

如果这是一个自制的工具,那么很明显你听起来像是你的应用程序有问题。 我的第一个直觉就是检查任何可能使用强大处理能力的循环上的边界。 另一个是检查是否满足终止条件。 但诚然,这是一个debugging问题,应该在内部处理。

至于你的实际问题,可能没有任何东西 – 但是有了正确的权限,你当然可以configurationNagios在检测到某些条件时触发远程重启(即通过ssh)。 您可以使用系统负载指示器(用法!= 负载 )来监视15分钟的间隔,以确定最大值。 你也可以通过一个cron脚本来完成这个任务,比如每分钟运行一次

我希望你修正错误而不是解决它 – 未来的维护者将会感激,特别是如果你是你的!