Linux高负载需结合CPU核心数判断是否真过载,再通过uptime、top、iostat、vmstat等工具区分CPU型、I/O型或混合型问题,逐层定位进程、线程及隐藏干扰项。

Linux高负载不能只看uptime里那三个数字,得结合CPU核心数判断是否真过载,再分方向快速锁定是CPU、内存、磁盘IO还是网络拖了后腿。
先看负载值是否真超标
运行uptime或cat /proc/loadavg,拿到1/5/15分钟平均负载。关键不是数字本身,而是和CPU核心数比:
- 查核心数:
grep -c 'processor' /proc/cpuinfo或nproc - 合理上限 ≈ 核心数 × 0.7(比如4核机器,负载超2.8就该看了)
- 若1分钟值远高于15分钟值,说明刚爆发问题,优先盯当前
- 负载高但CPU idle仍高?很可能是I/O等待导致的“假忙”
区分负载类型:CPU型 or I/O型
同一高负载,原因可能截然不同:
- CPU型:top里%CPU总和高,
mpstat -P ALL 1显示某核持续95%+,vmstat中us+sy占比大,wa很低 - I/O型:top里CPU使用率不高,但
iostat -x 1中%util接近100%,vmstat中wa常超30%,r队列长度持续≥4 - 混合型:用
pidstat -u 1 -d 1同时看进程CPU和IO,找双高进程
逐层定位具体进程和线程
找到“罪魁”才能对症下药:
标签: linux java js node 工具 栈 ai ios java类
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~