微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux系统加载中的奇怪值

我试图了解一个 Linux服务器上的系统负载

$正常运行时间
15:01:45上升52天,19:48,1位用户,平均负载:0.63,1.76,4.81

负载总是1分钟<1分钟. 5分钟< 15分钟. 分销商ID:RedHatEnterpriseServer
发布:5.8

我每秒钟捕获正常运行时间约30分钟,并且总是报告1分钟平均值低于5分钟和15分钟.根据我对系统负载值的理解,这是不可能的.似乎报告了更高的数字,并增加了一些常数.

这怎么可能,这是什么意思?

解决方法

我认为你可能误解了“平均负载”是如何工作的.
首先它不是系统“加载”它的系统“负载平均值” – 由于数字都是平均值(意味着跨越多个记录和时间),因此存在很大差异!此外,了解系统上cpu数量非常重要,因为这将影响如何解释数字(注意当天和年龄的核心).

另请注意,您不能将这些数字用作“cpu使用率”,就像从Windows等中了解的那样.它们是平均值,基于进程等待时间和cpu使用情况.

正如您自己写的那样,负载平均数可以描述如下.

(请注意我不使用>也不使用<因为我认为它可能会产生误导.)
>在最后1分钟
>在最后5分钟
>在过去的15分钟

让我们对我的小型双cpu(核心)系统进行测试.

我运行命令“stress -c 1”到最大输出1 cpu(核心)并让它运行5,10,30分钟(cpu使用时间可能更少,因此数字略有偏差).

这就是我的负载平均值的样子.

5 MIN - load average: 1,00,71,37
10 MIN - load average: 1,02,94,59
30 MIN - load average: 1,01,1,03,98

那么数字是什么意思呢?假设它在双cpu(核心)系统上你可以取第一个数字1,00并告诉我们系统使用了50%,因为我们知道它有两个cpu因此如果数量是2,00那么我们在哪里使用系统100%,十进制数字告诉你进程等待的过载.

>在过去1分钟内:计算机平均超载0%,平均使用一个完全使用的cpu. Aka在正常的cpu负载条件下使用50%的系统.

等等.让我们进行相同的运行,但是两个cpu都处于负载状态并添加一个额外的孩子试图获取资源.在这种情况下,我试图使用超过我的系统可以处理.

在短短3分钟内,我的负荷已经在尖叫着我!现在我不打算让它运行更长时间,因为它是一个小型路由器,可以更轻松地测试负载,所以它变得越来越热:)

3 MIN - load average: 2,48,99,74

现在让我们拿1分钟平均数2,48.这告诉我们什么呢?
我们正在使用248%的系统,我们知道我们可以使用两个cpu(200%),因此系统超载48%意味着0.48进程平均等待cpu使用时间,因为两个cpu完全忙.但如果这是一个4 cpu(核心)系统,那么数字就会很好,因为我们只使用了50%的系统.

我希望这一切都是有意义的,同样的分布之间可能会有很小的变化,他们的内核如何解释平均负载,但不像你想的那样.这是内核查看进程处于什么状态的方式.如cpu_idle,cpu_waiting,io_waiting等.所以NFS fs可以让io等进程等待.我不认为RedHat做了什么特别的事情.

编辑:如果要查看系统上的整体cpu使用率,可能需要使用命令“top”. Top还显示了平均负载.

原文地址:https://www.jb51.cc/linux/398749.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐