编辑
2023-11-09
操作系统
00
请注意,本文编写于 547 天前,最后修改于 547 天前,其中某些信息可能已经过时。

Load Average是什么?

  • Load Average是一种度量CPU资源需求的指标,它表示一段时间内运行队列中需要被调度的进程或线程的平均数目。
  • 在Linux系统中,Load Average等于单位时间内正在运行的进程加上可运行队列的进程。
  • Load Average的数值可以远远大于1,因为它考虑的是操作系统中可运行队列中进程的个数。

CPU Usage和Load Average的差别:

  • CPU Usage表示CPU的使用率,它反映了CPU的负载情况。
  • Load Average表示一段时间内运行队列中需要被调度的进程或线程的平均数目。
  • 当CPU还有空闲时,CPU Usage可以直接反映到Load Average上,单位时间内进程CPU Usage相加的平均值应该就是Load Average的值。
  • 当CPU满负载时,Load Average就不能和CPU Usage等同了,因为还有更多的进程在排队等待CPU资源。

为什么加了CPU Cgroup限制容器还是很慢?

  • CPU Cgroup可以限制进程的CPU资源使用,但对容器的资源限制还存在盲点,无法控制Load Average的平均负载。
  • 如果容器的Load Average值升高,应用的性能会下降,这可能是因为其他因素导致的,比如I/O等待的进程。
  • Load Average只考虑运行态的进程数目,而没有考虑等待I/O的进程。因此,即使CPU资源被限制,如果有大量进程处于I/O等待状态,Load Average仍然会升高,导致容器运行变慢。

Learn more:

  1. 细节篇(6):限制了CPU为什么还有高平均负载 - 掘金
  2. 容器实战 - 简书
  3. docker - 随笔分类 - 南昌拌粉的成长 - 博客园

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!