什么是系统负载?


13

在我的工作中,我们有一个运行Ubuntu 12.04.03 CLI的数据存储库,正如我今天上午在登录时检查它们一样,没有提供正常的信息,而是显示系统信息超过2且无法显示该信息,我想知道这是什么意思?我刚刚重新启动了它,因为它没有响应,这与启动并使一切顺利进行的过程有关吗?

Answers:


17

运行topuptime命令:

$ uptime
 19:36:03 up 5 days,  9:12,  8 users,  load average: 0.05, 0.16, 0.21
$ top -bn1 | head -1
top - 19:36:07 up 5 days,  9:13,  8 users,  load average: 0.05, 0.16, 0.21

这里列出的平均负载为:

/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.  They
          are the same as the load average numbers given by uptime(1)  and
          other  programs. 

考虑我的平均负载:0.05, 0.16, 0.21
这意味着,在最后一分钟内,平均有0.05个进程在等待资源。

您是否应该担心平均负载为2?通常,如果平均负载大于可用CPU的数量,则某些进程必须闲置以等待CPU插槽。

如果平均负载小于的输出nproc,则无需担心。

另请参见:平均负载在UNIX / Linux中是什么意思? 如Braiam所述,进程不必仅等待CPU:了解平均负载与CPU使用率


这非常有帮助,但是考虑到我们之前从未见过这种情况,重启后应该立即运行这么热吗?它正在运行AMD Athlon(tm)64 X2双核处理器4200+,并且不运行任何图形或额外的进程。
肖恩·G

@SeanG可以,取决于其他运行方式。这可能是一次性事件。如果这种情况反复发生,请使用bootchart之类的东西查看启动过程中发生的情况。
大师

“这意味着,在最后一分钟内,平均有0.05个进程在等待CPU。” 实际上这是不完整的,资源可以是任何硬件,而不仅仅是CPU。这可能是磁盘,网络,GPU等
Braiam

@Braiam是正确的(我简化了声明)。我在谷歌搜索loadavg时遇到了这个q,但没有想到将其包括在内。
大师

重新启动后,由于系统刚刚经历了密集的初始化过程,因此平均负载确实可能很高。正如答案中所解释的那样,这些数字下降到正常水平需要花费几分钟。过期的花蜜工作可以延长期限。
EmilJeřábek在2014年

7

系统负载系统平均负载

它是运行队列,即等待资源(CPU,I / O等)可用的进程队列。

将单核cpu视为单车道,将桥梁和流程视为汽车。

现在在这种情况下,系统负载为

  • 0.0-如果道路上没有交通。
  • 1.0-如果道路上的交通量恰好是桥梁的通行能力。
  • 大于1-如果道路上的交通流量超过桥梁的通行能力,则汽车必须等待通过桥梁。

该数字未根据您的进行标准化cpu。在多处理器系统中,负载2表示使用双核处理器的利用率为100%,负载4表示使用四核的处理器利用率为100%。

您可以使用以下方式获取系统负载

  • uptime
  • cat /proc/loadavg
  • top

    $ uptime 22:49:47上11:47,4个用户,平均负载:2.20、1.03、0.82

这里的最后三个数字分别代表1分钟,5分钟和15分钟的系统平均负载。

上面的示例表明,平均而言,在最后一分钟测得的运行队列中,有2.20个进程正在等待调度。


这没有解释什么是平均负载。
Braiam 2014年

在答案中添加了它。
g_p 2014年

2

系统负载与CPU内核数有关,例如,如果您有一个四核CPU(4个内核),则值1表示系统负载为25%,而值4表示100%。


这没有解释什么是平均负载,并且关于CPU时间百分比和平均负载之间的关系是错误的。
Braiam 2014年

0

如果键入终端正常运行时间,您将看到类似:平均负载和三列数字,分别是一分钟,五分钟和十五分钟的负载。如果您有双核处理器,则2表示100%使用,1表示50%,依此类推。


这没有解释什么是平均负载,并且关于CPU时间百分比和平均负载之间的关系是错误的。
Braiam 2014年

1
是的,它确实。根据正常运行时间手册:平均负载为1表示一直在加载单个CPU系统,而在4 CPU系统上则表示75%的时间处于空闲状态。
EdiD 2014年

CPU负载和平均负载之间没有关系。再检查一遍。
Braiam 2014年

0

2.0的系统负载不是很高。在多核系统上,您的CPU甚至可能仍处于部分空闲状态。

负载平均值是衡量CPU内核要一次使用的进程数的衡量指标。

以下假设一个单核(单线程)CPU:

  • 0.0

    CPU根本不执行任何操作。如果某个进程要开始使用CPU,那么它将是唯一使用它的进程。

  • 1.0

    CPU处于最大使用率,但是使用CPU的进程之间的争用为零。也就是说,只有一个进程正在运行,因此它能够为其本身占用100%的CPU时间。或者,正在运行多个进程,但没有一个进程声称拥有100%CPU,并且它们的组合CPU使用率总计达到100%。即使它们完全拥有自己的CPU,它们的运行速度仍然与运行时一样快。

  • 大于1.0

    CPU的利用率最高,并且有多个进程希望同时使用它,因此它们的运行速度比如果专门使用CPU时要慢得多。例如,平均负载为3.0表示进程以其想要运行的速度的三分之一运行。平均50.0的负载表示由于所有其他进程都在运行,因此进程以其想要运行的速度的1/50运行。也就是说,高于1.0的数字表示可用CPU正在越来越多的活动进程之间分配。

使用多核CPU不会改变数字的含义,但会改变它们的解释方式。例如,如果您有一个4核CPU,那么1.0的负载仍然等效于在一个核上使用100%CPU的一个进程,但是还有其他三个核。因此,在4核CPU上,最大效率点是4.0,而不是1.0-一切以1/3效率运行的点是12.0,而不是3.0。更复杂的是,单个进程可能有多个线程,每个线程都拥有自己的CPU。因此,如果一个进程是多线程的,则可以使用所有4个内核的100%。

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.