TOP命令详解
top命令和ps命令的基本作用是相同的,显示系统当前的进程和其它状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如在前台执行该命令,它将独占前台,直到用户终止该程序为止。
比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用、执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。在后面的介绍中将把命令参数和交互命令分开讲述。
top命令语法:
The command-line syntax for top consists of:
-hv | -bcHisS -d delay -n iterations -p pid [,pid...]
The typically mandatory switches ('-') and even whitespace are com-
pletely optional.
-b : Batch mode operation
运行在Batch模式下,此模式下不接受任何前端输入,直到运行结束退出(使用-n命令)
或kill进程为止(可以使用Ctrl+C)
-c : Command line/Program name toggle
显示整个命令行而不只是显示命令名。(进程的command列显示进程的对应命令行或命
令名)
-d : Delay time interval as: -d ss.tt (seconds.tenths)
设置每次刷新的间隔时间,格式为ss.tt,不能为负
-h : Help
-H : Threads toggle
显示进程中的每一个线程
-i : Idle Processes toggle
只显示当前运行的进程
-n : Number of iterations limit as: -n number
指定刷新的次数,到达次数之后即退出
-u : Monitor by user as: -u somebody
只显示后面跟的用户名下的进程信息
-U : Monitor by user as: -U somebody
同上
-p : Monitor PIDs as: -pN1 -pN2 ... or -pN1, N2 [,...]
显示指定进程号的进程,注意如上所示的格式
-s : Secure mode operation
保护模式下执行,禁止一些破坏性命令
-S : Cumulative time mode toggle
在累计时间模式下执行,显示每个进程占用的CPU累计时间
-v : Version
执行窗口的命令如下:
Z,B Global: 'Z' change color mappings; 'B' disable/enable bold
l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode
f,o . Fields/Columns: 'f' add or remove; 'o' change display order
F or O . Select sort field
<,> . Move sort field: '<' next col left; '>' next col right
R,H . Toggle: 'R' normal/reverse sort; 'H' show threads
c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
x,y . Toggle highlights: 'x' sort field; 'y' running tasks
z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
u . Show specific user only
n or # . Set maximum tasks displayed
k,r Manipulate tasks: 'k' kill; 'r' renice
d or s Set update interval
W Write configuration file
q Quit
( commands shown with '.' require a visible task display window )
h/?:进入help
Z:更改颜色配置
B:显示粗体(仅对头部数据有效)
l:显示or隐藏 Summaries 信息
t:显示or隐藏 task/cpu 信息
m:显示or隐藏 mem 信息
1:显示SMP信息(CPU)
I:切换 Irix/Solaris 模式
f:增加/减少显示的信息字段
o:调整显示信息字段的顺序
F/O:选择排序的字段
<>:使用左边or右边的字段排序
R:调整顺序or逆序排列
H:是否显示进程的详细线程
c:是否显示command完全信息
i:是否只显示running进程信息
S:切换累计时间模式
x:将排序字段列加粗显示
y:将running task加粗显示
z:是否切换颜色模式
b:在x/y模式下,切换使用粗体or反色
u:只显示指定用户进程
n/#:设定进程显示数量,0为默认
k:结束某进程
r:re nice
d/s:更改每次刷新的时间间隔
W:将信息写入文件
q:退出
top命令结果详解:
top命令显示的项目很多,默认值是每5秒更新一次。显示的各项目为:
1、top类
该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的负载值)。
top - 11:18:35 up 54 days, 19:08, 1 user, load average: 0.02, 0.01, 0.00
2、Task类
自最近一次刷新以来的运行进程总数。这些进程被分为正在运行的,休眠的,停止的等很多种类。
Tasks: 166 total, 1 running, 165 sleeping, 0 stopped, 0 zombie
3、CPU states
显示用户模式,系统模式,优先级进程(只有优先级为负的列入考虑)和闲置等各种情况所占用CPU时间的百分比。
优先级进程所消耗的时间也被列入到用户和系统的时间中,所以总的百分比将大于100%。
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.2%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
4、Mem & Swap
Mem:内存使用情况统计,其中包括总的可用内存,空闲内存,已用内存,共享内存和缓存所占内存的情况。
Swap:交换空间统计,其中包括总的交换空间,可用交换空间,已用交换空间。
Mem: 4043588k total, 3876352k used, 167236k free, 204512k buffers
Swap: 2031608k total, 160k used, 2031448k free, 3290012k cached
5、Process类
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ TIME COMMAND
30060 oracle 18 0 654m 16m 12m S 0.0 0.4 0:00.02 0:00 ora_q001_devMISowb
30058 oracle 18 0 654m 18m 15m S 0.0 0.5 0:00.02 0:00 ora_q000_devMISowb
30050 oracle 15 0 654m 17m 13m S 0.0 0.4 0:00.01 0:00 ora_qmnc_devMISowb
30046 oracle 18 0 655m 15m 11m S 0.0 0.4 0:00.02 0:00 ora_s000_devMISowb
30044 oracle 15 0 654m 16m 12m S 0.0 0.4 0:00.02 0:00 ora_d000_devMISowb
30042 oracle 18 0 654m 24m 20m S 0.0 0.6 0:00.03 0:00 ora_mmnl_devMISowb
30040 oracle 15 0 656m 107m 100m S 0.0 2.7 0:08.63 0:08 ora_mmon_devMISowb
* A: PID = Process Id = 每个进程的ID
* E: USER = User Name = 每个进程所有者的用户名
* H: PR = Priority = 每个进程的优先级别
* I: NI = Nice value = 进程的优先级值
* O: VIRT = Virtual Image (kb) = 虚拟内存值
* Q: RES = Resident size (kb) = 常驻内存值
* T: SHR = Shared Mem size (kb) = 共享内存值
* W: S = Process Status = 该进程的状态。
S:休眠状态;D:不可中断的休眠;R:运行;Z:僵死;T:停止或跟踪。
* K: %CPU = CPU usage = 占用的CPU和总CPU的百分比
* N: %MEM = Memory usage (RES) = 占用的物理内存占总内存的百分比
* M: TIME+ = CPU Time, hundredths = CPU时间占用百分比
b: PPID = Parent Process Pid = 进程的父进程ID
c: RUSER = Real user name = Real user name
d: UID = User Id = User Id
f: GROUP = Group Name = Group Name
g: TTY = Controlling Tty =
j: P = Last used cpu (SMP) =
p: SWAP = Swapped size (kb) = Swapped size
* L: TIME = CPU Time =
r: CODE = Code size (kb) = Code size
s: DATA = Data+Stack size (kb) =
u: nFLT = Page Fault count =
v: nDRT = Dirty Pages count =
y: WCHAN = Sleeping in Function =
z: Flags = Task Flags <sched.h> =
* X: COMMAND = Command name/line = 该进程的命令名称