负载均值的真实含义
负载均值统计的是单位时间内在两个队列里的平均进程数:等待处理器调度的可运行进程,以及处于不可中断等待状态(通常是等磁盘或网络存储返回)的进程。所以负载高不等于处理器忙,等待输入输出的进程同样计入。判断是否过载必须把它们换算到处理器核数上比较:单核机器负载为二已经很重,而多核机器上同样的数值可能还很轻松。持续时间也要看,短时突发与长时间高位是两种性质的问题。
基本信息
| 查看方式 | uptime 或系统负载文件 |
|---|---|
| 三个数值 | 依次为 1 分钟、5 分钟、15 分钟均值 |
| 判断基准 | 与处理器核数比较,超过核数说明有明显排队 |
| 参考文件 | 系统负载文件还包含可运行进程数与进程总数 |
| 核数查询 | nproc 查看可用处理器核数 |
| 辅助工具 | 进程列表、虚拟内存统计、磁盘输入输出统计 |
典型使用场景
- 收到负载告警:先确认核数与持续时长,再判断是否真的过载
- 区分瓶颈类型:看是等处理器还是等输入输出,决定优化方向
- 定位元凶进程:按处理器占用排序找出最耗资源的前几名
- 确认存储问题:输入输出统计里等待比例高说明存储是瓶颈
- 变更后复核:调整参数或扩容后对比同一时间窗口的负载变化
- 容量评估:把高峰期负载与核数对比,作为扩容依据
定位命令
定位命令
uptime # 负载均值一眼看
nproc # 处理器核数,用于换算判断
cat /proc/loadavg # 含可运行进程数与总进程数
ps -eo pid,stat,pcpu,pmem,comm --sort=-pcpu | head -15 # 最耗处理器的进程
ps -eo pid,stat,comm | awk '$2 ~ /D/' | head -20 # 找出不可中断等待的进程
vmstat 1 5 # 观察运行队列与等待输入输出的进程数状态与现象对照
| 观察点 | 含义 | 下一步 |
|---|---|---|
| 可运行进程多 | 在排队等处理器 | 看最耗处理器进程,评估核数是否够 |
| 不可中断等待多 | 卡在磁盘或网络存储 | 检查存储延迟与网络文件系统 |
| 上下文切换极高 | 进程争抢或频繁唤醒 | 结合进程与锁竞争分析 |
| 等待比例高 | 处理器大量时间空转等输入输出 | 优先解决存储侧瓶颈 |
| 短时高位后回落 | 突发任务造成 | 确认对应时段的批处理任务 |
负载高于核数并不一定说明异常:批量任务、备份窗口、软件编译都会造成短时高位。判断标准应放在「持续十五分钟的均值」与「业务响应是否劣化」这两点上,二者都正常时不必急于干预。
区分等待类型是关键:等处理器的进程处于可运行状态,等输入输出的进程处于不可中断状态。后者大量出现时,加处理器没有意义,应该从磁盘、存储链路或网络文件系统入手。