top用于实时定位高资源占用进程,vmstat用于观察运行队列、I/O等待及换页等趋势性瓶颈,二者配合可覆盖大多数Linux性能问题。

直接用 top 看实时进程和资源占用,用 vmstat 抓整体趋势和底层瓶颈,两者配合能覆盖大多数性能问题。
top:盯住“此刻谁在吃资源”
运行 top 后,重点看几块:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
第一行负载值(如
load average: 1.20, 0.85, 0.60):对比 CPU 核心数。若 1 分钟值持续高于核心数 × 0.7,说明任务排队明显 -
CPU 行(
%Cpu(s)):关注wa(I/O 等待)是否超过 20%,高了就查磁盘;us和sy加起来长期超 80%,说明 CPU 紧张 -
内存行:别只看
free,重点看available(真实可用内存);如果Swap used持续增长,物理内存已不足 -
进程列表:按
P排 CPU、M排内存,快速定位异常进程;按1可展开看每个 CPU 核心的使用率
vmstat:发现“慢慢变糟”的问题
它不刷新界面,而是按固定间隔输出快照,适合观察变化趋势:
- 常用命令:
vmstat 2 5(每 2 秒一次,共 5 次),或加-t显示时间戳便于比对 - r 列(就绪队列长度):长期大于 CPU 核心数,说明 CPU 资源争抢严重
- wa 列:和 top 的 wa 含义一致,但 vmstat 单独列出,方便连续观察是否恶化
- si/so 列(swap 入/出 KB/s):非零且持续波动,代表内存不足,内核频繁换页
-
bi/bo 列(块设备读/写 blocks/s):数值突增常对应 I/O 高峰,结合
iostat -x 1可进一步确认磁盘响应延迟
怎么搭配用才有效
单一工具容易误判,比如 top 显示 CPU 空闲但系统卡顿,可能其实是 I/O 等待(wa 高但被平均稀释);vmstat 发现 r 值持续偏高,就得回 top 找具体是哪个进程在排队。
- 先跑
top快速定位“热点进程”和当前资源水位 - 再用
vmstat 1 10观察 10 秒内 r、wa、si/so 是否同步异常,确认是瞬时抖动还是持续压力 - 若怀疑磁盘问题,补一句
iostat -x 1看%util和await,判断是不是设备饱和或响应慢


















