首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >linux系统负载中的奇怪值

linux系统负载中的奇怪值
EN

Server Fault用户
提问于 2015-12-15 14:20:39
回答 1查看 484关注 0票数 4

我试图理解一个linux服务器上的系统负载:

$uptime 15:01:45 up 52 days, 19:48, 1 user, load average: 0.63, 1.76, 4.81

负荷总是1分钟<5分钟< 15分钟。

Distributor ID: RedHatEnterpriseServer Release: 5.8

我每秒钟捕捉uptime大约30分钟,总是报告1分钟平均低于5分钟15分钟。根据我对系统负载值的理解,这是不可能的。似乎有更高的数字报告了一些附加常数。

这怎么可能,这意味着什么?

EN

回答 1

Server Fault用户

发布于 2016-11-22 13:48:41

我认为你可能误解了“平均负载”是如何工作的。首先,它不是系统“加载”,而是系统“负载平均”--由于所有的数字都是平均值(意味着跨越多个记录和时间),这是一个很大的差异!另外,非常重要的是,您知道系统上CPU的数量,因为这将影响如何解释数字(在当今时代,注意核心)。

另外,请注意,您不能使用这些数字作为"CPU使用量“,就像您从windows等了解到的那样。它们是平均值,基于进程等待时间和cpu使用情况。

正如您自己所写的,负载平均值可以描述如下。

(请注意,我不使用>或<,因为我认为它可能有误导性。)

  • 在最后1分钟
  • 在过去的5分钟里
  • 在过去的15分钟

让我们在我的小型双cpu(核心)系统上做一个测试.

我运行了命令“压力-c 1”来使1CPU(核心)最大,并让它运行5、10、30分钟(cpu的使用时间可能会更少,因此数字会有轻微的偏差)。

这就是我的负载平均值。

代码语言:javascript
运行
复制
 5 MIN - load average: 1,00, 0,71, 0,37
10 MIN - load average: 1,02, 0,94, 0,59
30 MIN - load average: 1,01, 1,03, 0,98

那么这些数字意味着什么呢?如果它在一个双CPU(核心)系统上,你可以使用第一个数字1,00,这告诉我们系统使用了50%,因为我们知道它有两个CPU,因此如果这个数字是2,00,那么我们在使用系统100%时,十进制数告诉你等待进程的过载。

  • 在最后1分钟:计算机平均超载0%,平均一个充分使用的CPU。也就是在正常的CPU负载条件下,使用系统的地方是50%。

诸若此类。让我们进行相同的运行,但两个CPU都处于加载状态,并添加一个额外的子程序试图占用资源。在这种情况下,我试图使用我的系统所能处理的更多的东西。

再过3分钟,我的负载就已经在向我尖叫了!现在,我不会让它运行更长的时间,因为它是一个小型路由器,可以更容易地测试负载,因此它变得很热:)

代码语言:javascript
运行
复制
3 MIN - load average: 2,48, 0,99, 0,74

现在让我们来看看平均1分钟的2,48分钟。这能告诉我们什么?我们使用248%的系统,我们知道我们可以使用两个CPU (200%),所以系统超载了48%,这意味着0.48进程平均等待CPU使用时间,因为两个CPU的进程是完全繁忙的。但如果这是一个4 CPU(核心)系统,那么数字将是相当好的,因为我们只使用了50%的系统再次。

我希望这一切都是有意义的,而且在内核如何解释平均负载方面,也可以有一些小的差异,但不像您想象的那样。这就是内核如何看待进程所处的状态。比如cpu_idle,cpu_waiting,io_waiting等等。所以NFS可以让进程等待io等等,我不认为RedHat做什么特别的事情。

编辑:如果您想查看整个系统上的CPU使用情况,您可能需要使用"top“命令。顶部还显示了负载平均值。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/743156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档