$正常运行时间
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做了什么特别的事情.