linux 中系统性能分析命令 top 用法详解
目录
top 命令是 Linux 系统下常用的性能分析工具,它能够实时显示系统中各个进程的资源占用状况,类似于 Windows 下的任务管理器。
命令输出示例
在命令行下输入 top 后回车出现如下内容:
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top
1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
统计信息区解释
前五行是系统整体的统计信息。
第一行:任务队列信息
01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
01:06:48- 当前时间up 1:22- 系统运行时间,格式为时:分1 user- 当前登录用户数load average: 0.06, 0.60, 0.48- 系统负载,即任务队列的平均长度;三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值
第二、三行:进程和 CPU 信息
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
29 total- 进程总数1 running- 正在运行的进程数28 sleeping- 睡眠的进程数0 stopped- 停止的进程数0 zombie- 僵尸进程数0.3% us- 用户空间占用 CPU 百分比1.0% sy- 内核空间占用 CPU 百分比0.0% ni- 用户进程空间内改变过优先级的进程占用 CPU 百分比98.7% id- 空闲 CPU 百分比0.0% wa- 等待输入输出的 CPU 时间百分比0.0% hi、0.0% si- 硬中断、软中断 CPU 时间百分比
第四、五行:内存信息
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached
191272k total- 物理内存总量173656k used- 使用的物理内存总量17616k free- 空闲内存总量22052k buffers- 用作内核缓存的内存量192772k total(Swap)- 交换区总量0k used- 使用的交换区总量192772k free- 空闲交换区总量123988k cached- 缓冲的交换区总量(内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖)
进程信息区
统计信息区域的下方显示了各个进程的详细信息。
列含义说明
| 列名 | 含义 |
|---|---|
| PID | 进程 ID |
| USER | 进程所有者的用户名 |
| PR | 优先级 |
| NI | nice 值。负值表示高优先级,正值表示低优先级 |
| VIRT | 进程使用的虚拟内存总量,单位 KB。VIRT=SWAP+RES |
| RES | 进程使用的、未被换出的物理内存大小,单位 KB。RES=CODE+DATA |
| SHR | 共享内存大小,单位 KB |
| S | 进程状态:D(不可中断睡眠)R(运行)S(睡眠)T(跟踪/停止)Z(僵尸进程) |
| %CPU | 上次更新到现在的 CPU 时间占用百分比 |
| %MEM | 进程使用的物理内存百分比 |
| TIME+ | 进程使用的 CPU 时间总计,单位 1/100 秒 |
| COMMAND | 命令名/命令行 |
默认情况下仅显示比较重要的列。可通过交互键更改显示内容。
交互命令
显示内容调整
f键 - 选择显示的内容。按后会显示列的列表,按 a-z 可显示或隐藏对应列,最后按回车确定。o键 - 改变列的显示顺序。按小写 a-z 将相应列向右移动,大写 A-Z 向左移动,回车确定。F或O键 - 将进程按照相应列进行排序。大写R键倒转排序。
进程管理
k键 - 终止一个进程。系统提示输入进程 PID 和信号。一般用信号 15;无法正常结束用信号 9。r键 - 重新安排进程优先级。输入 PID 和优先级值。正值降低优先级,负值提高。
显示切换
l键 - 切换显示平均负载和启动时间信息。m键 - 切换显示内存信息。t键 - 切换显示进程和 CPU 状态信息。c键 - 切换显示命令名称和完整命令行。i键 - 忽略闲置和僵死进程。H键 - 显示进程中的线程。
其他
M键 - 根据驻留内存大小进行排序。P键 - 根据 CPU 使用百分比大小进行排序。T键 - 根据时间/累计时间进行排序。W键 - 将当前设置写入~/.toprc文件中。q键 - 退出程序。Ctrl+L- 擦除并重写屏幕。
命令行选项
top [-d delay] [-p PID] [-q] [-c] [-S] [-s] [-n]
-d- 指定每两次屏幕刷新之间的时间间隔。-p- 通过指定监控进程 ID 来仅仅监控某个进程的状态。-q- 无延迟进行刷新;若有超级用户权限,以最高优先级运行。-S- 指定累计模式。-s- 在安全模式中运行(去除交互命令的潜在危险)。-i- 不显示闲置或僵死进程。-c- 显示整个命令行而不只是命令名。