058 top命令

命令说明

top 实时动态显示系统整体负载与进程资源占用(CPU/内存),可按需排序、杀进程,是性能排障与“谁在吃 CPU”的第一现场工具。

语法

top [选项]

常用参数

参数说明
-d 秒刷新间隔,如 top -d 0.5
-p PID只监控指定进程,可逗号分隔多个
-u 用户只看某用户的进程
-b批处理模式输出(配合重定向/脚本采集)
-n 次数刷新 n 次后退出,常与 -b 连用
交互 P / M按 CPU / 内存占用排序
交互 1展开每个 CPU 核心的使用率
交互 c显示完整命令行
交互 k输入 PID 与信号在线杀进程
交互 q / z退出 / 彩色模式切换

使用示例

$ top

默认进入动态监控界面

$ top -d 1 -p 1234

每秒刷新只看某进程

$ top -u mysql

只看 mysql 用户的进程

$ top -b -n 1 > /tmp/top.txt

快照一次输出到文件留档

$ top -c

启动即显示完整命令路径

$ top 内按 M

按内存排序找吃内存的进程

$ top 内按 k → 输入PID → 9

强杀失控进程

$ htop

增强版交互界面(需安装),支持鼠标与树状

实用技巧

  • 看 top 头部三板斧:load average 三个数对应 1/5/15 分钟负载(与 CPU 核数比较判断忙闲)、%Cpu 行看 us/sy/wa(wa 高是磁盘瓶颈)、KiB Mem 看可用内存与 swap 使用。
  • RES 才是进程真实占用物理内存,VIRT 含映射与共享,新手常误读 VIRT 造成“内存爆炸”假象。
  • %CPU 超过 100% 表示用满多核(Irix 模式),按 i 可切换 Solaris 模式归一化显示。
  • top 里按 f/o 可自定义显示列,按 < / > 移动列,W 保存配置到 ~/.toprc。
  • 脚本采集用 top -b -n 1 再 awk 提取;长期监控建议 vmstat/pidstat 或 Prometheus node_exporter。
  • 与 ps 区别:top 动态实时,ps 一次性快照;找瞬时尖峰用 top,留证据用 ps -eo 输出重定向。