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还显示了平均负载.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...