Linux top命令简介
top 命令是最流行的性能监视工具之一,它是一个优秀的交互式工具,用于实时监视系统性能。它提供系统整体性能信息,但报告进程详细信息才是 top 命令的长处。
top命令界面详解
系统整体信息区域
第一行(与uptime命令输出相同):
1
| top - 01:47:56 up 1:26, 2 users, load average: 0.00, 0.00, 0.00
|
- 01:47:56 - 系统当前时间
- up 1:26 - 系统运行时间
- 2 users - 当前登录用户数
- load average: 0.00, 0.00, 0.00 - 系统1分钟、5分钟、15分钟的CPU负载
第二行(进程信息):
1
| Tasks: 38 total, 1 running, 37 sleeping, 0 stopped, 0 zombie
|
- 38 total - 总进程数
- 1 running - 正在运行的进程数
- 37 sleeping - 睡眠的进程数
- 0 stopped - 停止的进程数
- 0 zombie - 僵死的进程数
第三行(CPU信息):
1
| %Cpu(s): 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
|
- 0.0% us - 用户态进程占用CPU时间百分比
- 0.7% sy - 内核态占用CPU时间百分比
- 0.0% ni - 优先级调整的用户进程占用CPU时间百分比
- 99.3% id - 空闲CPU时间百分比
- 0.0% wa - 等待I/O的CPU时间百分比
- 0.0% hi - 硬件中断占用CPU时间百分比
- 0.0% si - 软件中断占用CPU时间百分比
- 0.0% st - 被虚拟机偷取的CPU时间百分比
第四行(内存信息):
1
| MiB Mem : 250.4 total, 221.1 free, 29.3 used, 8.0 buff/cache
|
- 250.4 total - 物理内存总量
- 221.1 free - 空闲物理内存
- 29.3 used - 使用中的物理内存
- 8.0 buff/cache - 用作缓冲区和缓存的内存
第五行(交换空间信息):
1
| MiB Swap: 329.4 total, 329.4 free, 0.0 used. 219.1 avail Mem
|
- 329.4 total - 交换空间总量
- 329.4 free - 空闲交换空间
- 0.0 used - 使用中的交换空间
- 219.1 avail Mem - 可用内存
进程信息区域
| 列名 |
含义 |
| PID |
进程ID |
| USER |
进程所有者 |
| PR |
进程优先级 |
| NI |
nice值(优先级调整值) |
| VIRT |
进程占用的虚拟内存 |
| RES |
进程占用的物理内存 |
| SHR |
进程使用的共享内存 |
| S |
进程状态(R=运行,S=睡眠,Z=僵死,N=低优先级) |
| %CPU |
进程占用CPU的使用率 |
| %MEM |
进程使用的物理内存百分比 |
| TIME+ |
进程启动后占用的总CPU时间 |
| COMMAND |
进程启动命令 |
top命令选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| top -n 10
top -d 2
top -u username
top -p 1234,5678
top -b
top -S
top -H
top -c
|
交互式操作指令
| 按键 |
功能 |
| q |
退出top命令 |
| 空格 |
立即刷新 |
| s |
设置刷新时间间隔 |
| c |
显示/隐藏完整命令行 |
| t |
显示/隐藏进程和CPU状态信息 |
| m |
显示/隐藏内存状态信息 |
| l |
显示/隐藏uptime信息 |
| f |
增加或减少进程显示字段 |
| S |
切换累计模式 |
| P |
按%CPU使用率排序 |
| T |
按TIME+排序 |
| M |
按%MEM排序 |
| u |
显示指定用户的进程 |
| r |
修改进程优先级 |
| k |
终止进程 |
| i |
只显示正在运行的进程 |
| W |
保存设置到~/.toprc文件 |
| h |
显示帮助信息 |
实用示例
1. 监控特定进程
1 2 3 4 5
| top -p 1234
top -p 1234,5678,9012
|
2. 按内存使用排序
3. 监控系统整体性能
1 2
| top -b -d 2 -n 5 > top_output.txt
|
4. 查看线程信息
1 2 3 4 5
| top -H
top -H -p 1234
|
性能分析技巧
CPU分析:
- 如果%us(用户态)高,说明应用程序消耗CPU
- 如果%sy(内核态)高,说明系统调用频繁
- 如果%wa(I/O等待)高,说明系统存在I/O瓶颈
内存分析:
- 关注used内存和avail Mem
- 如果交换空间使用过多,说明物理内存不足
进程分析:
- 识别占用CPU和内存最多的进程
- 注意是否有僵死进程(Z状态)
负载分析:
- load average值不应持续超过CPU核心数
- 1分钟、5分钟、15分钟的负载趋势可以反映系统状态
与其他工具的对比
| 工具 |
特点 |
适用场景 |
| top |
实时交互式监控 |
日常系统监控 |
| htop |
增强版top,界面更友好 |
交互式监控,支持鼠标操作 |
| vmstat |
虚拟内存统计 |
系统整体性能分析 |
| iostat |
I/O统计 |
存储性能分析 |
| mpstat |
CPU使用情况统计 |
多CPU系统分析 |
| ps |
进程静态快照 |
一次性进程查看 |
配置文件
top命令的配置保存在~/.toprc文件中,通过W键可以保存当前设置。
注意事项
- top命令会消耗一定的系统资源,在系统负载很高时应谨慎使用
- 对于长期监控,建议使用批处理模式并将输出重定向到文件
- 在多核系统上,top默认显示的是所有CPU的平均值,可以按数字键1查看每个CPU的详细情况
参考资料