为什么/“正常运行时间”如何显示CPU负载> 1?


Answers:


20

负载不等于CPU使用率。它基本上是一个指标,指示有多少进程正在等待执行。

一些有用的链接:


哦,好的,这很有道理。有没有办法获得CPU使用率而不是加载?
理查德·罗德里格斯

好吧,通常您可以有许多CPU。一个人可能很忙,而另一个人却闲着。看看htop一个不错的“图形”概述。
michas

2
这是不正确的。平均负载是准备好要执行多少个进程的度量。这包括正在等待的过程,但正在进程当前正在执行。因此,如果平均负载为1,则意味着(在给定的时间段内)平均使用了一个CPU。如果是两个,则意味着平均使用两个CPU。因此,单CPU系统的特定平均负载与多核系统的平均平均负载并不相同。
Wouter Verhelst


7

uptime显示系统负载(不完全是CPU使用率),其描述man uptime如下:

系统平均负载是处于可运行或不可中断状态的平均进程数。处于可运行状态的进程正在使用CPU或等待使用CPU。处于不间断状态的进程正在等待某些I / O访问,例如,等待磁盘。在三个时间间隔内取平均值。负载平均没有针对系统中CPU的数量进行标准化,因此负载平均为1表示单个CPU系统始终处于加载状态,而在4 CPU系统上则意味着75%的时间处于空闲状态。

只要负载小于您拥有的CPU内核数,就可以了。如果超过了它,则意味着您的系统无法“实时”处理其工作负载。因此,某些进程需要等待获取CPU时间(或IO访问)。等待线已创建。

如果您的负载为2.7,则表示平均(在最后1分钟,5分钟或15分钟内,具体取决于您看到的值),有2.7个进程试图并行执行,但您只有1个内核,因此您的系统超载。您要求太多了。

不过不要惊慌,它可能不是这样的问题:工作完成后,通常情况会恢复正常。


4

正常运行时间显示输出 /proc/loadavg

的手册页man 5 proc说:

   /proc/loadavg
          The first three fields in this file are load average figures giving
          the  number  of jobs in the run queue (state R) or waiting for disk
          I/O (state D) averaged over 1, 5, and 15  minutes. 

因此,即使您的CPU使用率为0%,也可以承受较高的负载。一个内核可以在多处理器系统上获得高达100%或1的负载。

另请参见I / O期间的CPU高负载


-2
 ps aux --sort -rss |head -15

这将对rss内存中最常用的15个进程进行排序

而且这将按CPU和内存对最常用的进程进行排序

 ps aux --sort -pid |head -15

如果您有1个CPU负载,则警告大于1,请检查进程列表,查看其中谁使用了最多的CPU和RAM

当您看到最常用的进程时,请尝试查看打开哪些文件

lsof -p [PID_most_used]

如果您从顶部命令给出ouptut,那也很好


1
rss与平均负载无关,您在做什么?
Wouter Verhelst
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.