负载平均值大于EC2计算单元的数量

在EC2 m1.large上,使用如下所示的AVG CPU利用率图表:

在这里输入图像说明

负荷平均值大于EC2计算单位(4)的数量怎么可能?

cat /proc/loadavg 5.78 5.57 5.44 1/188 9388 

负载平均值不受限于计算单元数量的最大值。 负载平均值是运行或等待运行的进程数的度量。 如果您的平均负载高于计算单元的数量,则意味着有一个等待运行的进程队列。

现在,在你的情况下,你会显示一个CPU利用率的图表。 一切都很好 – 但是这表明你有进程等待CPU时间以外的其他进程。 这几乎总是I / O,最常见的是磁盘I / O。 如果你看top ,你可能会看到很多时间花在“洼”状态。

top是一个很好的下一个地方,看看为什么你的系统过载。

好的,这里有一些根本性的误解。

首先,EC2计算单元与CPU内核的数量不相似。 相反,它们是可用的相对CPU性能的抽象表示。 m1.large具有两个可用的CPU内核。

其次,当平均负载数量超过可用内核数量时,一般来说,这表示进程正在排队等待某些事情 – 通常是CPU周期或IO。 换言之,他们不得不排队…

一般来说,您不希望您的平均负载超过可用的内核数量。