【Linux】Linux 系统负载查看与瓶颈判断运维手册

【Linux】Linux 系统负载查看与瓶颈判断运维手册

一、系统负载核心概念

Linux 系统负载(Load Average)是衡量系统整体繁忙程度的核心指标,它表示当前正在运行以及等待运行的进程总数

负载高低不直接等于 CPU 使用率,还包含磁盘 IO 等待、不可中断进程等待,是系统整体繁忙度的综合指标。

负载三个数值含义(从左到右):1分钟、5分钟、15分钟平均负载

  • 1分钟负载:反映瞬时波动
  • 15分钟负载:反映系统持续压力(运维告警核心参考值)

二、查看系统负载基础命令

# 最简单查看负载uptime# 综合查看负载、在线用户、系统运行时间w# 实时查看负载、CPU、内存、进程(最常用)top

三、查看服务器CPU核心数(负载判断依据)

负载高低必须结合CPU逻辑核数判断,裸看负载数值无意义。

# 统计逻辑CPU总核心数N=`grep-cprocessor /proc/cpuinfo`

四、系统负载分级标准

五、高负载两大核心场景:区分CPU忙 / 磁盘IO忙

系统负载高只有两种核心原因:CPU算力瓶颈 或 磁盘IO瓶颈,通过 top 命令可快速区分。

1、CPU繁忙导致高负载

核心特征:

  • top 中 us/sy(用户/内核CPU占用)很高
  • id(CPU空闲率)极低
  • wa(IO等待)接近 0

排查命令:定位耗CPU进程

# 按CPU使用率排序查看进程top# 查看CPU占用TOP10进程ps-aux--sort=-%cpu|head-10

常见原因:程序运算量大、死循环、Java频繁GC、批量编译/解压任务

2、磁盘IO繁忙导致高负载

核心特征:

  • top 中 wa(iowait) 数值>10%(极高)
  • id(CPU空闲率)很高,CPU本身不忙
  • 负载很高,但无高占用CPU进程

排查命令:查看磁盘IO状态

# 查看磁盘整体IO负载、繁忙度iostat-x21# 每秒采样一次,共输出2次查看具体哪个系统进程在疯狂读写磁盘iotop-obP-d1-n2

关键指标:

  • %util:接近100% = 磁盘打满、IO瓶颈
  • await:IO等待时间越长,系统阻塞越严重

常见原因:MySQL大量读写/全表扫描、日志刷屏、文件批量拷贝、内存不足频繁Swap交换

六、内存间接导致高负载

内存不足会触发系统频繁使用Swap分区,引发磁盘IO飙升、负载拉高。

# 查看内存、Swap使用情况free-h

七、一键系统负载完整排查命令

#!/bin/bashecho"========== 系统负载信息 =========="uptimeecho-e"\n========== CPU整体状态 =========="top-b-n1|grepCpuecho-e"\n========== 磁盘IO整体状态 =========="# 采样间隔2秒,只输出1次iostat-x21echo-e"\n========== IO占用最高进程TOP10 =========="iotop-obP|head-10echo-e"\n========== 内存与Swap状态 =========="free-h