什么是:Load Average


平均负载是一种古老的度量标准,自1970年代就已经存在,用于指​​示系统是否处于重负载/平均负载/低负载状态。指出系统负载是处于上升趋势还是下降趋势很有用。在本文中,让我们进一步了解“平均负载”。

如何理解“Load Average”? 在大多数情况下,“Load Average”报告为平均1分钟,5分钟和15分钟。请参考以下截图:

负载平均值中的三个平均值

l1.jpg

1分钟Load Average为6.00。

5分钟的Load Average为5.48。

15分钟的Load Average为3.25。

在不知道系统中存在CPU数量的情况下,很难说“平均负载”是高,正常还是低。您可以通过此处提供的一种方法找出系统中的CPU数量。

1CPU:

在上面的示例中,我们看到1分钟的Load Average为“ 6.00”。假设上述系统只有1个CPU,则表明该计算机上的“平均负载”非常高。这意味着该系统在最后一分钟正在处理600%的负载。我们得出600%的原因是:

= (Load Average / Number of CPUs) x 100

=(6.00 / 1)x 100

= 600%

因此,系统过载超过其可承受的容量500%。

12CPUs:

假设上述系统有12个CPU,这意味着“平均负载”是正常的。由于1分钟的“Load Average”为“ 6.00”,这意味着仅使用了50%的计算能力。我们得出50%,因为

= (Load Average / Number of CPUs) x 100

=(6.00 / 12)x 100

= 50%

24CPUs:

假设以上系统有24个CPU,这意味着“Load Average”非常低。由于1分钟的“Load Average”为“ 6.00”,这意味着仅使用了16.66%的计算能力。我们得出16.66%是因为

= (Load Average / Number of CPUs) x 100

= (6.00 / 24) x 100

= 16.66%

在这种情况下,我们可以合理地得出结论,该系统未得到充分利用。

1分钟,5分钟和15分钟“Load Average”的用途是什么? “Load Average”间隔有助于确定系统对计算的需求在一段时间内是增加还是减少。

增加平均负载

l1.jpg

查看上面的“Load Average”报告。您可以在上面的示例中注意到系统中的“平均负载”一直在增加。也就是说,在该系统的“平均负载”为15之前的15分钟为“ 3.25”。系统的“平均负载”为5分钟前为“ 5.48”,最后1分钟的“平均负载”为“ 6.00”。这表明该系统上对计算的需求正在增加。

降低Load Average

l2.jpg

查看上面的“Load Average”报告。您可以在上面的示例中注意到,系统中的“平均负载”一直在下降。也就是说,在该系统的“平均负载”为15之前15分钟为“ 5.05”。系统的“平均负载”之前的5分钟为“ 3.53”,最后1分钟的“平均负载”为“ 0.42”。这表明该系统上的负载一直在下降。

“Load Average”仅衡量CPU需求吗?

通常会说“Load Average”仅表示系统上的CPU需求。但这不是真的。“Load Average”不仅指示CPU需求,还指示文件I / O需求,网络I / O需求,磁盘I / 0需求以及等待锁定的周期。这是我们进行的一个有趣的案例研究,以证明这一理论。

什么是“Load Average好坏”?

平均负载是一个相对的术语。一个应用程序的良好“Load Average”可能是另一应用程序的不良Load Average。如果您问我什么是经验法则,我会说,如果“平均负载”百分比超过80%,您可能需要调查一下。

如何查找“Load Average”?

可以从各种来源找到“Load Average”:

一种。Unix / Linux命令行工具“顶部”在该字段中报告“Load Average”,如下图所示:

l3.png

b。Unix / Linux命令行工具“运行时间”在该字段中报告“Load Average”,如下图所示:

l4.png

C。“Load Average”也打印在“ / proc / loadavg”文件中:

l5.png

结论

“Load Average”是一个很好的指标,自1970年代初以来一直存在。它给出了系统的高电平脉冲。应该有充分的理由说明该指标可以存活半个多世纪。但是,如果您要进行详细的根本原因分析,从而导致性能下降,那么“平均负载”将不够。您想使用其他工具,例如top,vmstat,iostat,yCrash等。

我们还想以Genius Greg Brandon总结他的“Load Average”博客的方式来结束本文,其引用来自 调度程序维护者Peter Zijlstra编写的Linux源代码 kernel / sched / loadavg.c中的注释:

Peter Zijlstra的源代码注释

l6.png


原文链接:http://codingdict.com