易君召
发布于 2026-08-03 / 作者:易君召 / 3 阅读
0

Linux top 命令常见使用场景详解

top 是 Linux 内置交互式系统实时监控工具,无需额外安装,核心用于查看系统负载、进程资源占用,是运维、开发排查服务器性能最基础工具。

一、基础说明

bash

top          # 启动top交互式界面
top -b -n 3  # 批处理模式,输出3次快照后退出(适合脚本采集)

二、核心常见使用场景

场景 1:快速查看服务器整体负载(最常用)

目标:判断服务器是否繁忙、CPU 瓶颈

启动 top 第一眼看头部 5 行汇总信息

plaintext

top - 15:30:00 up 12d,  4:22,  2 users,  load average: 1.82, 1.65, 1.31
Tasks: 189 total,   1 running, 188 sleeping,   0 stopped,   0 zombie
%Cpu(s): 32.1 us,  5.2 sy,  0.0 ni, 60.4 id,  1.8 wa,  0.0 hi,  0.5 si,  0.0 st
MiB Mem : 15890.2 total,  2105.6 free,  8760.3 used,  5024.3 buff/cache
MiB Swap:  8192.0 total,  8192.0 free,     0.0 used.  6342.5 avail Mem

关注点:

  1. load average:1/5/15 分钟系统平均负载;

  2. %Cpu(s)wa(IO 等待)高 = 磁盘瓶颈;us高 = 应用程序耗 CPU;

  3. Mem/Swap:Swap 持续占用升高 → 内存不足。

使用场景:业务卡顿、接口超时,先确认整机负载、CPU / 内存 / IO 状态。

场景 2:定位占用 CPU 最高的进程

场景现象:服务器 CPU 飙升,不知道哪个进程导致

操作:

  1. 默认 top 界面按 P :按 CPU 使用率排序(大写 P)

  2. 找出 %CPU 最高 PID

  3. 配合 ps -ef | grep PID 查看进程详情,或 strace / perf 进一步追踪

配套常用命令:

bash

top -b -n1 | sort -k9 -nr | head -10   # 一次性输出CPU Top10进程

场景 3:定位内存泄漏 / 内存占用过高进程

场景现象:服务器内存持续上涨,OOM Killer 杀死业务进程

操作:

  1. top 界面按 M(大写 M):按内存%MEM排序

  2. 持续观察:进程VIRT/RES是否不断上涨 → 判断内存泄漏

RES(RSS):进程实际物理内存占用,重点指标

场景 4:查找僵尸进程(Zombie)

头部 Tasks 一行:zombie 数值大于 0 代表存在僵尸进程

plaintext

Tasks: 189 total,   1 running, 188 sleeping,   0 stopped,   2 zombie

场景:程序 fork 子进程后没有回收,产生僵尸进程;需要找到父进程处理。

场景 5:监控特定单个进程(重点进程盯防)

场景:只观察 Java、Nginx、数据库等目标进程资源变化

方式 1:交互式内筛选

输入 o,然后输入 COMMAND=java 过滤 java 进程;

方式 2:启动直接指定 PID

bash

top -p 1234              # 只监控PID=1234进程
top -p 1234,5678         # 同时监控多个PID

适用:压测时持续观察应用 CPU、内存变化;排查程序运行期间资源波动。

场景 6:批量采集性能数据,写入日志(自动化脚本)

交互式 top 不能直接用于脚本,必须使用批模式 -b

bash

# 每3秒采集一次,持续采集10次,输出到日志
top -b -d 3 -n 10 > top_log.txt

使用场景:

  • 复现偶发卡顿问题,后台持续录制性能快照;

  • 运维定时采集系统指标,事后分析。

场景 7:多 CPU 核心展开查看(区分单核满载)

默认 top 汇总所有 CPU,按 1(数字 1)

展开每一颗逻辑 CPU 使用率。

典型场景

单核程序(单线程应用)导致某一个 CPU100%,总体平均负载看着不高,很难发现瓶颈。开启多核视图快速定位单线程瓶颈。

场景 8:查看进程占用线程数量

top 中按 H 开启线程显示,所有线程展开

场景:

Java 程序、多线程服务,排查线程数量暴涨、死线程;配合 PID 查看线程资源消耗。

场景 9:排查 IO 等待高(% wa 高)

%Cpu wa 数值很高:CPU 空闲但是等待磁盘 IO。

top 只能看出现象,通常结合 iostat 配合,但 top 是第一时间发现问题入口。

特征:CPU 空闲 id 很高,但 wa 持续走高,业务响应缓慢。

三、高频交互式快捷键汇总(工作最常用)

按键

作用

P

按 CPU 使用率排序

M

按内存使用率排序

1

展开所有 CPU 核心

H

显示线程

k

输入 PID,杀死进程

d / s

修改刷新间隔

q

退出 top

f

自定义显示列(如 PID、USER、COMMAND、VSZ、RSS)

四、top 适用边界 & 对比区分

✅ 适合:快速、简易、即时查看整机与进程资源;开箱即用,所有 Linux 标配。

❌ 不足:

  1. 无法看磁盘 IO、网络 IO;

  2. 不保存历史数据;

  3. 精细性能分析推荐搭配:vmstat,iostat,pidstat,htop(增强版)

补充:很多机器安装 htop(top 增强版,界面更友好),但top 是系统原生,紧急故障环境一定存在,是应急排查保底工具。

五、典型工作排查流程示例

业务接口响应缓慢:

  1. top → 看 load average、CPU us/wa、内存 Swap

  2. 按 P 查看高 CPU 进程;按 M 查看高内存进程

  3. 按 1 查看是否单核打满

  4. 发现疑点 PID → 结合lsof、strace、jstack(Java)深入定位