TOP详细使用说明

功能说明:显示,管理 执行中的程序。
语  法:top [bciqsS][d < 间隔秒数>][n < 执行次数 >]
补充说明:执行top 指令可显示目前正在系统中执行的程序,并通过它所提供的互动式界面,用热键加以管理。


参  数:
b
 使用批处理模式。
c
 列出程序时,显示每个程序的完整指令,包括指令名称,路径和参数等相关信息。
d   <
间隔秒数>  设置top 监控程序执行状况的间隔时间,单位以秒计算。
i
 执行top 指令时,忽略闲置或是已成为Zombie 的程序。
n   <
执行次数>  设置监控信息的更新次数。
q
 持续监控程序执行的状况。
s
 使用保密模式,消除互动模式下的潜在危机。
S
 使用累计模式,其效果类似ps 指令的"-S" 参数。


top 命令是Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows 的任务管理器。下面详细介绍它的使用方法。

 

认识top 的显示结果

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% user,  1.0% system,  0.0% nice, 98.7% idle,  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 统计信息区

 

前五行是系统整体的统计信息。

第一行是任务队列信息 ,同uptime 命令的执行结果。其内容如下:

01:06:48   当前时间

up 1:22    系统运行时间,格式为时:

1 user    当前登录用户数

load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。

三个数值分别为1 分钟、5 分钟、15 分钟 前到现在的平均值。

 

第二、三行为进程和CPU 的信息 。当有多个CPU 时,这些内容可能会超过两行。内容如下:

Tasks: 29 total    进程总数

1 running          正在运行的进程数

28 sleeping        睡眠的进程数

0 stopped          停止的进程数

0 zombie           僵尸进程数

Cpu(s): 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  

 

最后两行为内存信息。内容如下:

Mem: 191272k total 物理内存总量

173656k used       使用的物理内存总量

17616k free        空闲内存总量

22052k buffers     用作内核缓存的内存量

Swap: 192772k total 交换区总量

0k used            使用的交换区总量

192772k free       空闲交换区总量

123988k cached     缓冲的交换区总量。

内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,

该数值即为这些内容已存在于内存中的交换区的大小。

相应的内存再次被换出时可不必再对交换区写入。

 

进程信息区

统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号   列名   含义

a      PID    进程id

b      PPID   父进程id

c      RUSER  Real user name

d      UID    进程所有者的用户id

e      USER   进程所有者的用户名

f      GROUP  进程所有者的组名

g      TTY    启动进程的终端名。不是从终端启动的进程则显示为?

h      PR     优先级

i      NI     nice 值。负值表示高优先级,正值表示低优先级

j      P      最后使用的CPU ,仅在多CPU 环境下有意义

k       %CPU   上次更新到现在的CPU 时间占用百分比

l      TIME   进程使用的CPU 时间总计,单位秒

m      TIME+  进程使用的CPU 时间总计,单位1/100

n      %MEM   进程使用的物理内存百分比

o      VIRT   进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES

p      SWAP   进程使用的虚拟内存中,被换出的大小,单位kb

q      RES    进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA

r      CODE   可执行代码 占用的物理内存大小,单位kb

s      DATA   可执行代码以外的部分( 数据段+) 占用的物理内存大小,单位kb

t      SHR    共享内存大小,单位kb

u      nFLT   页面错误次数

v      nDRT   最后一次写入到现在,被修改过的页面数。

w      S      进程状态。

D= 不可中断的睡眠状态

R= 运行

S= 睡眠

T= 跟踪/ 停止

Z= 僵尸进程

x      COMMAND 命令名/ 命令行

y      WCHAN  若该进程在睡眠,则显示睡眠中的系统函数名

z      Flags  任务标志,参考sched.h

 

默认情况下仅显示比较重要的PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND 列。可以通过下面的快捷键来更改显示内容。

 

更改显示内容

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

 

o 键可以改变列的显示顺序。按小写的a-z 可以将相应的列向右移动,而大写的A-Z 可以将相应的列向左移动。最后按回车键确定。

 

按大写的FO 键,然后按a-z 可以将进程按照相应的列进行排序。而大写的R 键可以将当前的排序倒转。

 

 

 

 

 

top 命令使用

1.  工具(命令)名称

top

2.  工具(命令)作用

显示系统当前的进程和其他状况;top 是一个动态显示过程, 即可以通过用户按键来不断刷新当前状态. 如果在前台执行该命令, 它将独占前台, 直到用户终止该程序为止. 比较准确的说,top 命令提供了实时的对系统处理器的状态监视. 它将显示系统中CPU 最“敏感”的任务列表. 该命令可以按CPU 使用. 内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

3.  环境设置

Linux 下使用。

4.  使用方法

4 1 使用格式

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

4 2 参数说明

d  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s 交互命令来改变之。

p  通过指定监控进程ID 来仅仅监控某个进程的状态。

q   该选项将使top 没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top 将以尽可能高的优先级运行。

S  指定累计模式

s  使top 命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

i  使top 不显示任何闲置或者僵死进程。

c  显示整个命令行而不只是显示命令名

4.3 其他

下面介绍在top 命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s 选项,则可能其中一些命令会被屏蔽掉。

 

Ctrl+L 擦除并且重写屏幕。

h 或者?     显示帮助画面,给出一些简短的命令总结说明。

k     终止一个进程。系统将提示用户输入需要终止的进程PID ,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15 信号;如果不能正常结束那就使用信号9 强制结束该进程。默认值是信号15 。在安全模式中此命令被屏蔽。

i     忽略闲置和僵死进程。这是一个开关式命令。

q     退出程序。

r     重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID 以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10

S     切换到累计模式。

s     改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s 。如果有小数,就换算成m s 。输入0 值则系统将不断刷新,默认值是5 s 。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

f 或者F    从当前显示中添加或者删除项目。

o 或者O    改变显示项目的顺序。

l     切换显示平均负载和启动时间信息。

m     切换显示内存信息。

t     切换显示进程和CPU 状态信息。

c     切换显示命令名称和完整命令行。

M     根据驻留内存大小进行排序。

P     根据CPU 使用百分比大小进行排序。

T     根据时间/ 累计时间进行排序。

W     将当前设置写入~/.toprc 文件中。这是写top 配置文件的推荐方法。

 

 

***********************************************************************

top 中按1 键和F 键的参数:
1 键可以等到多个cpu 的情况
F(f: 当前状态,可以按相应的字母键做top 的定制输出) 后得参数:

F 键和f 键的区别:

如果进入F 键区可以做显示的排序,如果进入f 键区的话则可以选择显示的多个项目:

* A: PID        = Process Id                // 进程ID        

b: PPID       = Parent Process Pid        // 父进程ID        

c: RUSER      = Real user name            // 真正的(Real) 所属用户名称        

d: UID        = User Id                   // 用户ID        

e: USER       = User Name                 // 用户名称        

f: GROUP      = Group Name                // 组名称

g: TTY        = Controlling Tty           // 控制        

h: PR         = Priority                  // 优先权        

i: NI         = Nice value                // 优先级得值( 负数代表较高的优先级, 正数是较低的优先级.0 标志改优先级的值是不会被调整的)        

j: #C         = Last used cpu (SMP)       // 随后使用的cpu 比率        

k: %CPU       = CPU usage                  //cpu 使用比率        

l: TIME       = CPU Time                  //cpu 占用时间        

m: TIME+      = CPU Time, hundredths     //cpu%

n: %MEM       = Memory usage (RES)        // 内存使用率

o: VIRT       = Virtual Image (kb)        // 虚拟镜像(VIRT = SWAP + RES: 所有进程使用的虚拟内存值, 包括所有的代码, 数据, 共享库已经被swapped out)

p: SWAP       = Swapped size (kb)         // 交换空间大小( 所有虚拟内存中的镜像)

q: RES        = Resident size (kb)        // 已经使用了的常驻内存(Resident size):RES = CODE + DATA

r: CODE       = Code size (kb)            // 分配给执行代码的物理内存

s: DATA        = Data+Stack size (kb)      //data+stack: 物理内存中非存放代码的空间, 用于存放数据

t: SHR        = Shared Mem size (kb)      // 共享内存大小. 放映了一个task 的潜在可以供别人使用的内存的大小

u: nFLT       = Page Fault count          // 内存叶错误的数量

v: nDRT       = Dirty Pages count         // 脏页的数量

w: S           = Process Status            // 进程状态:( R ) 为运行或可执行的,( S ) 为该程序正在睡眠中,( T ) 正在侦测或者是停止了,( Z ) 僵尸程序

x: COMMAND    = Command name/line         // 进程启动命令行参数

y: WCHAN      = Sleeping in Function      // 在睡眠中

z: Flags      = Task Flags <sched.h>      // 任务标志

 

STAT 该进程的状态。其中S 代表休眠状态;D 代表不可中断的休眠状态;R 代表运行状态;Z 代表僵死状态;T 代表停止或跟踪状态。

猜你喜欢

转载自eclecl1314-163-com.iteye.com/blog/1463140