一分钟彻底搞清CPU使用率和工作负载(load average)的含义

CPU使用率和工作负载,其实就是不同维度对CPU资源使用情况的描述。   

其中使用率是描述CPU的繁忙程度, 而工作负载则描述CPU的处理任务数。

 


 

生活中景区购票、排队进入,近乎完美满足CPU的计算模型。我们以此为例:

售票人员就是CPU, 购票游客就是任务数,  那么CPU的利用率,描述的是售票人员的工作饱和程度。而负载,描述的是游客排队的情况。

  

CPU利用率:

售票人员工作4分钟,然后休息6分钟, 则CPU利用率为40%; 

售票人员工作10分钟,然后不休息, 则CPU利用率为100%;

 

CPU负载:

假设一个售票人员一分钟最多可处理10个游客, 那么一分钟内如果只有2个游客, 则CPU的负载为0.2 ; 如果遇到国庆高峰假期,突然来了30个游客, 则一分钟内的负载为 30 / 10 = 3 , 来50个游客就是 50 / 10 = 5

 

基础计算方法明白后, 我们来找点乐子:

售票室网络特别卡,导致售票人员工作4分钟, 等待网络刷新票6分钟,  此时CPU利用率为40%。 然后又赶上了高峰期, 来了90个游客, 所以CPU负载为 9 。也就是CPU利用率很低,但CPU负载特别高。 

有些笔记本比较容易出现这种情况, 明明CPU使用率很低,但电脑特别卡。 

 


 

以上以单核CPU为例,  如果多核CPU使用率就是每颗核心使用率的总和, 负载最大值就是核心数, 原理相同不再复述。

 

注意如果核心数与线程数不同,如2核4线程,则按线程数4来算。或者任务管理器里数框框。

 

 

评论列表: