一、命令说明
top 命令能够实时监控系统的运行状态,并且可以按照CPU、内存和执行时间进行排序,同时top 命令还可以通过交互式命令进行设定显示,通过top 命令可以查看即时活跃的进行。
二、参数说明
- -b:批次模式运行。通常用作来将top 的输出的结果传送给其他程式或储存成文件
- -c:显示执行任务的命令行
- -d:设定延迟时间
- -h:帮助
- -H:显示线程。当这个设定开启时,将显示所有进程产生的线程
- -i:显示空闲的进程
- -n:执行次数。一般与-b 搭配使用
- -u:监控指定用户相关进程
- -U:监控指定用户相关进程
- -p:监控指定的进程。当监控多个进程时,进程ID 以逗号分隔。这个选项只能在命令行下使用
- -s:安全模式操作
- -S:累计时间模式
- -v:显示top 版本,然后退出
- -M:自动显示内存单位(k/M/G)
三、top交互命令
1、全局命令
- 回车、空格:刷新显示信息
- ?或h:帮助
- =:移除所有任务显示的限制
- A:交替显示模式切换
- B:粗体显示切换
- d或s:更改界面刷新时间间隔
- G:选择其它窗口/栏位组
- I:Irix 或Solaris 模式切换
- u或U:监控指定用户相关进程
- k:结束进程
- q:退出top
- r:重新设定进程的nice 值
- W:存储当前设定
- Z:改变颜色模板
2、摘要区命令
- l:平均负载及系统运行时间显示开关
- m:内存及交换空间使用率显示开关
- t:当前任务及CPU 状态显示开关
- 1:汇总显示CPU 状态或分开显示每个CPU 状态
3、任务区命令
- 外观样式
- b:黑体/反色显示高亮的行/列。控制x 和y 交互命令的显示样式
- x:高亮显示排序的列
- y:高亮显示正在运行的任务
- z:彩色/黑白显示。
- 显示内容
- c:任务执行的命令行或进程名称
- f或o:增加和移除进程信息栏位及调整进程信息栏位显示顺序
- H:显示线程
- S:时间累计模式
- u:监控指定用户相关进程
- 任务显示的数量
- i:显示空闲的进程
- n或#:设置任务显示最大数量
- 任务排序(shift+f)
- M:按内存使用率排序
- N:按PID 排序
- P:按CPU 使用率排序
- T:按Time+排序
- <:按当前排序栏位左边相邻栏位排序
- >:按当前排序栏位右边相邻栏位排序
- F或O:选择排序栏位
- R:反向排序
四、参数解释
1、第一行是任务队列信息,同uptime 命令,其内容解释如下:
21:59:09 | 当前时间 |
up 11:21 | 系统运行时间,格式为:时:分 |
2 users | 当前登录用户数 |
load average:0.05,0.01,0.01 | 系统负载,即任务队列的平均长度,三个数值分别为:1分钟、5分钟、15分钟前到现在的平均值 |
2、第二三行为进程和CPU的信息,当有多个CPU 时,这些内容可能会超过两行,内容如下:
Task:113 total | 进程总数 |
1 running | 正在运行的进程数 |
112 sleeping | 休眠的进程数 |
0 stoped | 停止的进程数 |
0 zombie | 僵尸进程数 |
Cpu(s):0.3%us | 用户进程消耗的CPU时间百分比 |
0.0%sy | 系统进程消耗的CPU时间百分比 |
0.0%ni | 用户进程空间内改变过优先级的进程占CPU时间百分比 |
99.7%id | CPU空闲状态的时间百分比 |
0.0%wa | I/O等待所占的CPU时间百分比 |
0.0%hi | CPU服务于硬中断所耗费的时间总额 |
0.0%si | CPU服务于软中断所耗费的时间总额 |
0.0%st | CPU服务于软中断所耗费的Steal Time |
3、第四五行为内存信息
Mem:1030616K total | 物理内存总量 |
698152k used | 已使用的物理内存总量 |
332464k free | 空闲的物理内存总量 |
31392k buffers | 用做内核缓存的内存总量 |
Swap:2064376k total | 交换分区总量 |
0k used | 已使用的交换分区 |
2064376k free | 空闲的交换分区 |
117716k cached | 缓冲的交换分区总量。 |
4、进程信息
PID | 进程ID |
PPID | 父进程ID |
RUSER | Real User Name |
UID | 进程所有者的用户ID |
USER | 进程所有者的用户名 |
GROUP | 进程所有者的组名 |
TTY | 启动进程的终端名,不是从终端启动的进程则显示为? |
PR | 优先级 |
NI | nice值,负值表示高优先级,正值表示低优先级 |
P | 最后使用的CPU,仅在多CPU环境下有意义 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
TIME | 进程使用的CPU时间总计,单位秒 |
TIME+ | 进程使用的CPU时间总计,单位百分之一秒 |
%MEM | 进程使用的物理内存百分比 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用虚拟内存中,被换出的大小,单位kb |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
CODE | 可执行代码占用的物理内存大小,单位kb |
DATA | 可执行代码以外的部分(数据段+栈)占用的物理内存大小 |
SHR | 共享内存大小,单位kb |
nFLT | 页面错误次数 |
nFRT | 最后一次写入到现在,被修改过的页面数 |
S |
进程状态: D:不可中断的睡眠状态 R:运行 S:睡眠 T:跟踪/停止 Z:僵尸进程 |
COMMAND | 命令名/命令行 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags | 任务标志,参考sched.h |
- 默认情况下仅显示比较重要的列:PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND
- 可以通过下面的快捷键来更改显示内容:
- 更改显示内容通过 f 键可以选择显示的内容(按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定)
- 按 o 键可以改变列的显示顺序(按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动,最后按回车键确定)
- 按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序,而大写的 R 键可以将当前的排序倒转。