设置我有一堆t2.small EC2实例运行托pipe的image processing库称为thumbor简单的即时图像resize。 原件从S3加载。 在实例前面我有一个EC负载均衡器。 我在服务器上安装了New Relic服务器监视器。
问题在随机时间,我的服务器突然开始经历非常高平均。 响应时间。 如果我看看New Relic的统计数据,我唯一看到的就是服务器CPU突然报告“被盗”的CPU。
我的服务器似乎有足够高的容量,而且不像吞吐量有任何极端的峰值。
我注意到,如果我再次停止/启动服务器。 然后被盗的CPU消失了,它们再次正常运行 – 直到下一次 – 它可能在几个小时或几天之间。
为什么会发生这种情况,我该怎么办?
Amazon的t系列实例使用CPU使用的配额系统。 当你达到你的配额,你开始看到你被盗的百分比上升。 你可以做的事情不多,这是提供的结构。
正如其他人所说,你很可能会用完CPU的信用 。 基本上,对于T2实例,你可以获得一小部分的CPU,在t2.small的情况下可以获得20%的核心能力,能够突发到一个或两个核心(取决于你的实例types),达到你的极限CPU信用。 在大多数情况下,您也不应该在负载均衡器后面使用T实例,因为性能不稳定,可能会导致很难诊断的奇怪问题。
如果您的信用不足,则需要移至较大的T实例,或移至具有一致访问核心的实例。 C(计算优化)或M(通用)会更合适。
您可以使用CloudWatch监控您的CPU信用 。 这将帮助您决定是否select更大的T实例或C / M实例。