一、top
命令的作用
top
命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top
显示系统的是当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top
命令提供了实时的对系统处理器的状态监视。它将显示系统中 CPU 最 “敏感” 的任务列表。该命令可以按 CPU 使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
二、top
命令选项与参数详解
2.1 top
命令选项详解
选项 | 说明 |
---|---|
-d | 指定 top 命令显示的页面自动更新一次的时间间隔,默认是 5 秒 |
-b | 以批次的方式执行 top 命令 |
-n | 与 -b 配合使用,表示需要进行几次 top 命令,并将结果输出 |
-p | 指定进程号 pid 来进行观察监测 |
-s | 使 top 命令在安全模式中运行,避免了交互命令所带来的潜在危险 |
-i | 使 top 命令不显示任何闲置或者僵死的进程 |
-H | 使 top 命令显示单个线程。 若没有该选项,则显示每个进程中所有线程的总和 |
-c | 是 top 命令显示整个命令行,而不只是命令名 |
-n | 指定 top 命令在结束之前应产生的最大迭代次数,即刷新几次 top 命令执行结果 |
2.2 top
命令指令详解
在 top
命令的显示页面还可输入以下指令执行相应的功能。
命令 | 说明 |
---|---|
? 或 h | 显示在 top 当中可以输入的命令 |
P | 以 CPU 的使用资源进行降序排序显示 |
M | 以内存 MEM 的使用资源进行降序排序显示 |
N | 以 PID 进行降序显示 |
T | 以进程使用的 CPU 时间累积 TIME+ 进行降序排序显示 |
k | 给某 PID 一个信号,可用于杀死进程 |
r | 给某 PID 重新定制一个 nice 值,即优先值 |
n | 使 top 命令的显示页面显示 n 条进程的状况 |
q | 退出 top |
W | 在当前目录下保存 top 的执行结果 |
三、top
命令内容详解
3.1 统计信息
第一行:top - 10:23:36 up 2 days, 16:27, 2 users, load average: 0.00, 0.00, 0.00
第二行:Tasks: 231 total, 1 running, 166 sleeping, 0 stopped, 0 zombie
第三行:%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第四行:KiB Mem : 3049700 total, 318948 free, 1162584 used, 1568168 buff/cache
第五行:KiB Swap: 998396 total, 998128 free, 268 used. 1604964 avail Mem
3.2 进程信息
列名 | 含义 |
---|---|
PID | 进程 ID |
PPID | 父进程 ID |
RUSER | Real user name |
UID | 进程所有者的用户 ID |
USER | 进程所有者的用户名 |
GROUP | 进程所有者的组名 |
TTY | 启动进程的终端名。不是从终端启动的进程则显示为 ? |
PR | 优先级 |
NI | nice 值。负值表示高优先级,正值表示低优先级 |
P | 最后使用的 CPU,仅在多 CPU 环境下有意义 |
%CPU | top 命令上次更新到现在的 CPU 时间占用百分比 |
TIME | 进程使用的 CPU 时间总计,单位秒 |
TIME+ | 进程使用的 CPU 时间总计,单位 1/100 秒 |
%MEM | 进程使用的物理内存百分比 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb |
RES | 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA |
CODE | 可执行代码占用的物理内存大小,单位kb |
DATA | 可执行代码以外的部分 (数据段+栈) 占用的物理内存大小,单位 kb |
SHR | 共享内存大小,单位 kb |
nFLT | 页面错误次数 |
nDRT | 最后一次写入到现在,被修改过的页面数 |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
COMMAND | 命令名/命令行 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags | 任务标志 |
其他具体的进程列信息可查看下图:
四、其他技巧
默认进入 top 时,各进程是按照CPU的占用量来排序的
1、在 top 基本视图中,按键盘数字 “1” 可以监控每个逻辑CPU的状况。
2、在 top 基本视图中,
- 按键盘 “x” 打开/关闭排序列的加亮效果。
- 按键盘 “y” 来打开或者关闭运行态进程的加亮效果。
- 按键盘 “b” 打开关闭加亮效果。
综合效果如下所示:
3、在 top 基本视图中,默认是按照 “%CPU” 进行排序的,可通过按 “shift + >” 或者 ”shift + < ” 来左右改变排序列。
4、在 top 基本视图中,敲击 “f” 进入另一个视图,在这里可以编辑 top 基本视图中的显示字段,用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项。
五、示例
top -b -n 2 > /tmp/top.txt
:将执行 2 次top
命令,然后将结果输出到/tmp/top.txt
。top -p 12345 -p 6789
:每隔 5 秒显示 PID 是 12345 和 PID 是 6789 的两个进程的资源占用情况。top -d 2 -c -p 123456
:每隔 2 秒显示 PID 是 12345 的进程的资源使用情况,并显式该进程启动的命令行参数。