top 是干什么的
top 是实时资源监控工具:上半屏给出负载、进程数、内存与 CPU 的时间分配,下半屏按占用排序列出进程,并随刷新不断更新。它既能看整体状态,也能定位到具体进程。系统卡顿时按 CPU 与内存排序看,是现场排查最快的一条路。
基本信息
| 适用平台 | Linux 全发行版(procps-ng) |
|---|---|
| 交互键 | P 按 CPU、M 按内存、1 展开内核、q 退出 |
| 批处理 | top -b -n1 | head -20 |
| 排序参数 | top -o %MEM |
| 负载来源 | uptime 或 top 首行 load average |
典型使用场景
- 服务器响应变慢时快速判断是 CPU 还是内存问题
- 找出占用最高的进程并决定处置方式
- 观察负载是否持续上升,判断是否存在雪崩风险
- 批处理模式采集一段快照用于工单与报告
- 配合 ps 与 pidstat 进一步确认单进程行为
典型用法
典型用法
top -b -n1 | head -15 # 非交互取一次快照
top -o %MEM -b -n1 | head -15 # 按内存占用排序
top -u nginx # 只看指定用户的进程
top -H -p $(pgrep -d, -f java) # 查看进程内线程
delay=1 top -b -n5 > /tmp/snap.txt # 连续采集 5 次落文件
uptime # 直接看 1/5/15 分钟负载首行与统计行怎么读
| 字段 | 含义 | 异常信号 |
|---|---|---|
| load average | 1、5、15 分钟平均负载 | 接近或超过核数说明排队 |
| us | 用户态 CPU 占比 | 高说明业务计算密集 |
| sy | 内核态 CPU 占比 | 偏高多为系统调用或中断多 |
| wa | 等待 IO 占比 | 高说明磁盘或网络存储慢 |
| id | 空闲比例 | 长期很低说明 CPU 紧张 |
| si 与 hi | 软中断与硬中断占比 | 异常高要查网络与驱动 |
负载高不等于 CPU 忙:先看 us、sy、wa 的构成,wa 偏高说明进程在等 IO,此时去查磁盘与存储更有意义。
top 里的 %CPU 可以超过 100%:多线程进程会把各线程的占用累加,这不是显示错误;要看单线程占用可以用 top -H。
现场处置顺序
- 先看首行负载与 CPU 构成,判断卡在哪一类资源
- 再按 CPU 或内存排序定位到具体进程
- 结合 pidstat 连续采样确认是持续还是瞬时
- 区分资源不足与程序异常,再决定处置方式
- 保留快照与时间点,便于事后复盘