实时显示服务器状态和进程状态工具 TOP

2015-08-16 0 By admin

实时显示|查看服务器状态和进程状态;并可以设置显示的信息字段,排序方式等信息。
TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。实时地对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

一、示例

top – 12:38:33 up 50 days, 23:15, 7 users, load average: 60.58, 61.14, 61.22
Tasks: 203 total, 60 running, 139 sleeping, 4 stopped, 0 zombie
Cpu(s) : 27.0%us, 73.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1939780k total, 1375280k used, 564500k free, 109680k buffers
Swap: 4401800k total, 497456k used, 3904344k free, 848712k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4338 oracle 25 0 627m 209m 207m R 0 11.0 297:14.76 oracle

1.1、任务队列信息

第一行信息同uptime 命令的执行结果
1、当前时间
2、系统运行时间,格式为时:分
3、当前登录用户数
4、load average: 0.06, 0.60, 0.48 系统负载

1.2、系统进程信息

1、进程总数
2、正在运行的进程数
3、睡眠的进程数
4、停止的进程数
5、僵尸进程数

1.3、CPU使用信息

1、us:用户空间占用CPU百分比
2、sy:内核空间占用CPU百分比
3、ni:用户进程空间内改变过优先级的进程占用CPU百分比
4、id:空闲CPU百分比
5、wa:IO等待占用CPU的百分比
6、hi:硬中断(Hardware IRQ)占用CPU的百分比
7、si:软中断(Software Interrupts)占用CPU的百分比

1.4、内存信息

1、total:物理内存总量
2、used:使用的物理内存总量
3、free:空闲内存总量
4、buffers:用作内核缓存的内存量

1.5、SWAP分区信息

1、total:交换区总量
2、used:使用的交换区总量
3、free:空闲交换区总量
4、cached:缓冲的交换区总量。

二、进程信息

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时间总计,单位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 任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。

三、常用操作

1、显示或隐藏特定字段

更改显示内容通过f键可以选择显示的内容。
按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

2、改变列的显示顺序

使用o管理列的显示顺序;
按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
设置完按回车返回界面。

3、交互命令

在top命令的显示窗口,我们还可以输入以下字母,进行一些交互

h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。
默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。
输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。输入0值则系统将不断刷新,默认值是5 s。
f|F 从当前显示中添加或者删除项目。
o|O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。即显示影藏第一行
m 切换显示内存信息。即显示影藏内存行
t 切换显示进程和CPU状态信息。即显示影藏CPU行
c 切换显示命令名称和完整命令行。显示完整的命令。 这个功能很有用。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

四、命令使用

top -hv | -abcHimMsS -d delay -n iterations -p pid [,pid...]
常用参数:
top -Hp pid
部分参数说明:

b batch mode 批处理模式
d 指定每两次屏幕信息刷新之间的时间间隔。使用s交互命令也可以设置。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
H 显示线程信息
S 指定累计模式;列出它和它死去的子进程使用的cpu时间
s 安全模式中运行。这将去除交互命令所带来的潜在危险。
i 不显示任何闲置或者僵死进程
c 显示整个命令行而不只是显示命令名。使用c交互命令也可以设置。