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 输出重定向。