最近开发的一个模块需要根据机房各节点的负载情况(如网卡IO、load average等指标)做任务调度,刚开始对Linux机器load average这项指标不是很清楚,经过调研,终于搞清楚了其计算方法和影响因素,作为笔记,记录于此。
1. load average
当在shell终端键入top命令时,默认情况下,在输出内容的第一行会有load average这项指标值,如下所示:
那么,这3个值是怎么计算出来的?下面从Linux源码中寻找答案。
2. linux机器load average的计
1. load average
当在shell终端键入top命令时,默认情况下,在输出内容的第一行会有load average这项指标值,如下所示:
top - 19:10:32 up 626 days, 4:58, 1 user, load average: 7.74, 5.62, 6.51
Tasks: 181 total, 8 running, 173 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.0% us, 0.5% sy, 0.0% ni, 95.4% id, 0.0% wa, 0.0% hi, 0.0% si 同样,输入uptime命令,load average也会被输出:
19:15:10 up 129 days, 5:12, 15 users, load average: 0.01, 0.09, 0.05 根据man uptime的说明可知,
load average包含的3个值分别表示past 1, 5 and 15 minutes内的系统平均负载。
那么,这3个值是怎么计算出来的?下面从Linux源码中寻找答案。
2. linux机器load average的计

本文探讨了Linux系统的load average概念,它包括当前运行和不可中断的sleeping进程。源码分析显示,load average计算涉及nr_running和nr_uninterruptible等状态的进程。了解load average的含义对于系统性能监控至关重要。

2492

被折叠的 条评论
为什么被折叠?



