设置 我有一堆 t2.small EC2 实例正在运行,托管名为拇指用于简单的即时图像大小调整。原始图像从 S3 加载。在实例前面我有一个 EC 负载均衡器。我在服务器中安装了 New Relic 服务器监控。
问题 在随机时间,我的服务器突然开始经历极高的平均响应时间。如果我查看 New Relic 中的统计数据,我唯一看到的是服务器 CPU 不断飙升,并报告“被盗”CPU。
我的服务器似乎具有足够高的容量,并且同时吞吐量并没有出现任何极端峰值。
我注意到,如果我再次停止/启动服务器。那么被盗的 CPU 就会消失,它们会再次正常运行 - 直到下一次 - 间隔可能为数小时或数天。
为什么会发生这种情况?我该怎么办?
答案1
Amazon 的 T 系列实例使用 CPU 使用配额系统。当您达到配额时,您会看到被盗百分比开始上升。对此您无能为力,这是产品的结构性问题。
- 总体上使用更少的 CPU。
- 使用更大的 t 系列实例。
- 使用没有配额的 m 系列或 c 系列之一。
答案2
正如其他人所说,你很可能已经用完了CPU 积分基本上,使用 T2 实例,您可以获得一小部分 CPU,如果是 t2.small,则可以获得 20% 的核心,并且能够爆发到一个或两个核心(取决于您的实例类型),直至达到 CPU 信用额度的上限。在大多数情况下,您也不应该在负载均衡器后面使用 T 实例,因为性能不稳定可能会导致难以诊断的奇怪问题。
如果信用额度用完,则需要转移到更大的 T 实例,或转移到可以持续访问核心的实例。C(计算优化)或 M(通用)可能更合适。
你可以使用 CloudWatch 监控您的 CPU 积分。这将帮助您决定是否使用更大的 T 实例或 C/M 实例。