Linux CPU管理及监控与性能评估

一、CPU负载

CPU负载(cpu load)指的是某个时间点进程对系统产生的压力。

CPU的运行能力,就如大桥的通行能力,分别有满负荷,非满负荷,超负荷等状态,这几种状态对应不同的cpu load值。单CPU满负荷运行时cpu_load为1,当多个CPU或多核时,相当于大桥有多个车道,满负荷运行时cpu_load值为CPU数或多核数。

CPU负载的计算(以单CPU为例),假设一分钟内执行10个任务代表满负荷,当一分钟给出30个任务时,CPU只能处理10个,剩余20个不能处理,cpu_load=3。

从系统的角度而言,平均负载反映了系统面临的总体压力,而如果我们将视角切换到任务本身的话,那么从本质上说,系统负载代表着任务对系统资源的渴求程度。

从负载的定义是处于 runnable 与 uninterruptible 两种状态的平均进程数,也就是平均活跃进程数,它和CPU是用来是没有直接关系的。而 CPU 使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。比如:

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

大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

所以确切地说它不仅是CPU load,而是system load。如果因为uninterruptible的任务较多造成负载值看起来偏高,实际的系统在使用上也不见得就会出现明显

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/132003014