平均负载与 CPU 使用率

平均负载与 CPU 使用率

Content #

既然平均负载代表的是活跃进程数,那平均负载高了,不就意味着 CPU 使用率高吗?

我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用 CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。

而 CPU 使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。比如:

  1. CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;
  2. I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;
  3. 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

Viewpoints #

From #

02 | 基础篇:到底应该怎么理解“平均负载”?