我在爱尔兰的 ec2 上有一个运行 Ubuntu Linux 的 t2.micro 实例,它正在运行批处理作业,并且我对它们进行了调整,以便最大 CPU 非常低 - 它永远不会超过 10%。
文档说明:
当 T2 实例使用的 CPU 资源少于其基本性能级别允许的资源时(例如当它处于空闲状态时),未使用的 CPU 积分(或获得的和花费的之间的差额)将存储在积分余额中长达 24 小时,从而为突发情况积累 CPU 积分。当您的 T2 实例需要的 CPU 资源多于其基本性能级别允许的资源时,它会使用 CPU 积分余额中的积分将利用率突增至 100%。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html
同一页面还显示,此类实例的“基本性能(CPU 利用率)”为 10%。
但是当 CPU 使用率在 6% 左右时(最大值始终低于 10%),实例会消耗 CPU 积分。这并非我所期望的,因为我理解文档(上面引用)中说,当实例处于或低于其基本性能水平时,它不会消耗任何 CPU 积分。(我从 Cloudwatch 基本监控中获取了 CPU 使用率数据)。
那么实例为什么会消耗 CPU 积分呢?
答案1
它仍在消耗信用,只是获取新信用的速度与消耗信用的速度相同或更快。
一个 CPU 积分等于一个 vCPU 以 100% 的利用率运行一分钟。其他 vCPU、利用率和时间的组合也等于一个 CPU 积分;例如,一个 vCPU 以 50% 的利用率运行两分钟或两个 vCPU 以 25% 的利用率运行两分钟。
因此,对于 t2.micro,您每小时将获得 6 个信用点(每十分钟一个)。在 10% 负载下,您每小时将消耗 6 个信用点(同样,每十分钟一个)。
想象一下,你工作挣钱,但又要付房租。你的工作不会直接付房租,只会给你一张 0 美元的薪水支票——他们会给你钱,然后你再用这笔钱来付房租。如果你挣的钱比房租多,你的银行账户就会增加。如果你挣的钱比房租少,最终你就会没钱。