首页/系统/Linux 运维命令速查/top 实时进程监控
进程与作业69 条

top 实时进程监控

最常用的实时资源视图:默认按 CPU 排序,1 看每核、M 切内存排序、c 看完整命令、k 杀进程;load 与 %wa 判断系统压力。

Linux 运维命令速查系统更新于 2026-10-13

top 是什么

top 属于 procps-ng 套件,提供实时刷新的资源视图,默认按 CPU 占用排序、每 3 秒刷新一次。它同时给出三层信息:系统概要(load average、任务数、CPU 各状态占比、内存与交换分区)、进程列表(PID、用户、状态、CPU、内存、运行时间、命令)、以及一组交互命令(切换排序、筛选用户、看线程、杀进程、调优先级)。它是判断「卡在哪一层」最省事的入口,但不保存历史,只反映采样瞬间。

基本信息

适用平台Linux 全发行版(procps-ng 的 top);精简容器与 BusyBox 环境里的 top 功能受限,交互键与字段都不完整
命令语法top [选项]
常用选项-b 批模式、-n 刷新次数、-d 刷新间隔、-p 只监控指定 PID、-u 只看指定用户、-o 指定排序字段、-H 显示线程、-c 显示完整命令行
交互键P 按 CPU 排序、M 按内存排序、1 展开每个核心、c 完整命令、k 杀进程、r 调 nice、u 按用户过滤、H 线程视图、W 保存配置、q 退出
权限要求普通用户能看到进程列表,但其他用户的完整命令行与部分字段需要 root 才显示;k 与 r 操作受进程属主限制

典型使用场景

  • 快速判断负载来源:先看 us 是否高,再看 wa 是否高,一分钟内定位是算力、IO 还是虚拟化抢占
  • 单核热点分析:按 1 展开每个核心,确认是单线程瓶颈还是整体压力
  • 内存排查:按 M 排序看 RES 常驻内存,结合 available 与 swap 判断是否已进入交换
  • 抓取现场证据:top -b -d 1 -n 5 输出到文件,事后对比或提交给二线排查
  • 定位 D 状态任务:load 高但 CPU 空闲时,在状态列里找 D(不可中断睡眠,通常是 IO 等待)
  • 临时调整优先级:用 r 对非关键任务 renice,缓解关键服务被抢占

常用示例

常用示例
top -o %CPU                      # 按 CPU 排序启动
top -u www-data                  # 只看某个用户的进程
top -p 1234 -p 5678              # 只盯指定 PID
top -b -d 1 -n 5 > /tmp/top.log  # 批模式连续采 5 次留证
top -H -b -n 1 | head -30        # 线程视图,定位具体线程
# 进入交互界面后:
#   1 展开每核  M 内存排序  c 完整命令  k 杀进程  r 调优先级  H 线程  W 保存配置

CPU 行逐项读法

字段含义异常判断
us用户态 CPU 时间占比,应用自身计算持续接近 100% 说明应用吃满 CPU,先看谁在算
sy内核态占比,系统调用与网络处理偏高常见于高并发网络、频繁系统调用或驱动开销
wa等待 IO 完成的比例,此时 CPU 实际空闲持续超过 20% 说明磁盘是瓶颈,转查 iostat
hi / si硬中断与软中断占比网络或磁盘中断风暴时明显升高
st被虚拟化宿主机抢占的比例云主机上偏高说明邻居或超卖影响性能
id空闲比例id 很高但业务卡,瓶颈不在 CPU
load average 的三个数分别是 1、5、15 分钟平均值,要与逻辑核心数(nproc)对比着看:单核机器 load 2 已经过载,16 核机器 load 8 仍有余量。Linux 的 load 还统计 D 状态(不可中断睡眠)任务,因此负载高不等于 CPU 忙,IO 阻塞同样推高负载。
top 显示的是自上次刷新以来的增量,短命的突发进程可能一闪而过;多线程进程按进程聚合时 %CPU 可能超过 100%(多核叠加),按 H 展开成线程后每个线程通常不超过 100%。要长期趋势与历史回溯,应该用监控系统或 sysstat 的 sar,top 本身不留历史。
在 top 里按 k 会直接给目标进程发信号(默认 SIGTERM),手滑选错行就杀错服务。杀之前先按 c 确认完整命令行与启动参数,必要时改用 ps 与 pgrep 精确匹配 PID 后再操作。

易错点

  • 只看 CPU 排序会漏掉内存泄漏与 IO 阻塞:排查内存按 M,排查磁盘要转 iostat、iotop
  • load 高但 CPU 空闲时别死盯 %us,多半是 D 状态(IO 等待)或大量不可中断任务
  • top 是采样瞬间值,短暂尖峰不代表问题;多看几轮或用 -b -d 1 -n 5 观察趋势
  • 在 top 中按 k 杀进程默认发 SIGTERM 到所选 PID,选错行后果严重;先按 c 核对命令行再操作
  • 把 top 当作监控留档不可靠:它不保存历史,需要证据时用批模式输出到文件,长期趋势交给专业监控

数据来源与参考

  • man 1 top(procps-ng 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌