Asf*_*ura 2 throttling amazon-ec2 amazon-web-services
我的aws ec2 ubuntu实例一直存在问题,他们在一定时间内(大约8小时)总是有100%的CPU利用率,直到我重新启动它.
实例是ubuntu服务器13.04,它有一个基本的LAMP,就是这样.我有一个cron工作,每隔几分钟做一次ping,以保持VPN隧道,但它不应该这样做.
当它处于100%cpu利用率时,我无法ping它,ssh到它或浏览它,但它不会拒绝连接,它只是继续"尝试".
不知道背后的原因是什么?我猜它与亚马逊限制该实例有关,但奇怪的是它在8小时内使用100%的CPU.
这是实例的CPU日志,其他每个指标看起来都很正常.
我不能在这里附上图片,所以我发布了一个链接
编辑
之前我和其他实例发生过这种情况,现在我的Amazon Linux AMI现在连续4天以100%运行,而且只有tomcat,没有部署应用程序.我刚刚意识到,它没有反应,我终止了它.
作者注,2019年:这篇文章最初是在2013年写的,关于t1.micro实例类型.当前的EC2免费层现在允许您选择t1.micro或t2.micro实例类.与t1.micro的间歇性硬钳位行为不同,t2.micro持续满负荷运行,直到您的CPU信用余额接近耗尽,并且降级更加优雅.
这是预期的行为.请参阅"EC2用户指南(适用于Linux实例)"中的t1.micro实例.
请注意说"CPU级别有限"的图表.我测量过这个,如果你在一个微型实例上消耗100%cpu超过15秒,那么节流就会开始,你的可用周期会在接下来的2-3分钟内从2 ECU下降到大约0.2 ECU(大约200MHz) ,此时循环重复,如果您仍在努力拉动处理器,您将在几秒钟内再次受到限制.
在节流时间内,与获得最佳性能时相比,你只能获得约1/10的周期,因为管理程序"窃取"其余部分......所以你仍然会看到你使用的是100%的稳定. ..因为你使用了所有可用的东西.将微型固定在天花板上并不需要太多.或者楼层...所以要么你要求太多的实例类,要么你有一些意想不到的最大化你的CPU.
在机器响应时建立SSH连接,启动"顶部"运行,然后保持连接,这样当它开始变慢时,你已经有了工具,你需要用它来找出什么是cpu hog.
¹ 管理程序窃取其余部分: 一次常见的误解是管理程序从EC2实例中窃取的时间(可见的top和类似的实用程序)是由"嘈杂的邻居"引起的 - 在同一硬件上竞争CPU周期的其他实例.这不是被盗周期的原因.对于某些较旧的实例系列,m1如果AWS已在主机上配置了您的实例,而该主机具有比为实例类指定的处理器更快的处理器,则会看到被盗的周期; 周期被盗,因此实例的性能与您所支付的性能相匹配,而不是实际底层硬件的性能.EC2实例不共享虚拟化CPU资源的物理资源.