具有100%cpu且无响应的Amazon AWS微型实例

时间:2013-11-21 23:02:39

标签: amazon-web-services amazon-ec2 throttling

我的aws ec2 ubuntu实例出现了问题,他们在一定时间内(大约8小时)总是有100%的CPU利用率,直到我重新启动它。

实例是ubuntu服务器13.04,它有一个基本的LAMP,就是这样。 我有一个cron工作,每隔几分钟做一次ping,以保持VPN隧道,但它不应该这样做。

当它处于100%cpu利用率时,我无法ping它,ssh进入它或浏览它,但它不会拒绝连接,只是继续“尝试”。

知道背后的原因是什么?我猜这与亚马逊限制该实例有关,但奇怪的是它在8小时内使用100%的CPU。

这是实例的CPU日志,其他每个指标似乎都正常。

我无法在此处附加图片,因此我发布了一个链接

100% cpu utilization

修改

之前我和其他实例发生过这种情况,现在我的Amazon Linux AMI现在连续4天以100%运行,而且只有tomcat,没有部署应用程序。我刚刚意识到,它没有反应,我终止了它。

2 个答案:

答案 0 :(得分:6)

作者笔记,2019:这篇文章最初是在2013年写的,关于t1.micro实例类型。当前EC2 free tier现在允许您选择t1.micro或t2.micro实例类。与t1.micro的间歇性硬夹持行为不同,t2.micro持续以满容量运行,直到您的CPU credit balance接近耗尽,并且降级得更加优雅。


这是预期的行为。请参阅“EC2用户指南(适用于Linux实例)”中的t1.micro Instances

请注意说“CPU级别有限”的图表。我测量了这一点,如果你在一个微型实例上消耗100%cpu超过15秒,那么节流就会开始,你的可用周期会在接下来的2-3分钟内从2 ECU下降到大约0.2 ECU(大约200MHz) ,如果你还在努力拉动处理器,那么循环重复,你将在几秒钟后再次受到限制。

在节流时间内,与获得最佳性能时相比,你只能获得~1 / 10的周期,因为管理程序“窃取”其余部分......所以你仍然会看到你使用的是固体100%...因为你使用了所有可用的东西。将微型固定在天花板上并不需要太多。或者楼层......所以要么你要求太多的实例类,要么你有一些意想不到的最大化你的CPU。

在机器响应时建立SSH连接,启动“顶部”运行,然后保持连接,这样当它开始变慢时,你已经有了工具,你需要用它来找出什么是cpu猪。


¹虚拟机管理程序窃取其余部分:一次常见的误解是,虚拟机管理程序从EC2实例中窃取的时间(在top及类似实用程序中可见)是由“嘈杂”引起的邻居“ - 在同一硬件上竞争CPU周期的其他实例。这不是被盗周期的原因。对于某些较旧的实例系列,如m1,如果AWS在主机上配置了您的实例,处理器的处理速度高于为实例类指定的处理器,则会看到被盗的周期。周期被盗,因此实例的性能与您所支付的性能相匹配,而不是实际底层硬件的性能。 EC2实例不共享虚拟化CPU资源的物理资源。

答案 1 :(得分:2)

运行top,看看st(或偷)有多高。如果st为97%,那么您将受到限制,只有3%的CPU可以使用。你不需要做任何CPU密集型操作,因为它很慢!

如果是这种情况并且您无法更改所需的CPU数量,则唯一的解决方法是升级到小型实例。小实例没有那么多限制。

http://theon.github.io/you-may-want-to-drop-that-ec2-micro-instance.html