在 EC2 m1.large 上,具有如下 AVG CPU 利用率图表:
平均负载怎么可能大于 EC2 计算单元的数量 (4)?
cat /proc/loadavg
5.78 5.57 5.44 1/188 9388
答案1
平均负载不受计算单元数量上限的限制。平均负载是衡量运行进程数量的指标或等待运行。如果平均负载高于计算单元数,则意味着有一队进程正在等待运行。
现在,在您的例子中,您显示了一个 CPU 利用率图表。一切都很好 - 但这表明您有进程在等待除 CPU 时间之外的其他东西。这几乎总是 I/O,最常见的是磁盘 I/O。如果您查看top
,您可能会看到大量时间处于“wa”状态。
top
是下一个值得关注的地方,可以找出系统超载的原因。
答案2
好的,您这里有几个根本的误解。
首先,EC2 计算单元与 CPU 核心数并不相似。相反,它们是可用的相对 CPU 性能的抽象表示。m1.large 有两个可用的 CPU 核心。
其次,当平均负载数超过可用核心数时,一般来说,这表明进程正在排队,等待某些东西 - 通常是 CPU 周期或 IO。换句话说,他们不得不排队等待......
一般来说,您不希望平均负载超过可用的核心数。