top 命令详解

1.作用

top命令用来显示执行中的程序进程,使用权限是所有用户。

 

2.格式

top [-] [d delay] [q] [c] [S] [s] [n]

 

3.主要参数

d:指定更新的间隔,以秒计算。

q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。

c:显示进程完整的路径与名称。

S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。

s:安全模式。

i:不显示任何闲置(Idle)或无用(Zombie)的行程。

n:显示更新的次数,完成后将会退出top。

 

4.说明

top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。

 

top命令的显示 (图略)

 

第一行表示的项目依次为当前时间、系统运行时间、当前系统登录用户数目、1/5/10分钟系统平均负载(一般来说,这个负载值应该不太可能超过 1 才对,除非您的系统很忙碌。 如果持续高于 5 的话,那么…..仔细的看看到底是那个程序在影响整体系统吧!)。

 

第二行显示的是所有启动的进程、目前运行、挂起 (Sleeping)的和无用(Zombie)的进程。(比较需要注意的是最后的 zombie 那个数值,如果不是 0 ,嘿嘿!好好看看到底是那个 process 变成疆尸了吧?!)(stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的)

 

第三行显示的是目前CPU的使用情况,包括us用户空间占用CPU百分比、sy 内核空间占用CPU百分比、ni 用户进程空间内改变过优先级的进程占用CPU百分比(中断处理占用)、id 空闲CPU百分比、wa 等待输入输出的CPU时间百分比、hi,si,st 三者的意思目录还不清楚 :)

 

第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。

 

第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。

 

第六行显示的项目最多,下面列出了详细解释。

PID(Process ID):进程标示号 ( 每个 process 的 ID )

USER:进程所有者的用户名 ( 该 process 所属的使用者 )

PR:进程的优先级别 ( Priority 的简写,程序的优先执行顺序,越小越早被执行 )

NI:进程的优先级别数值 ( Nice 的简写,与 Priority 有关,也是越小越早被执行 )

VIRT:进程占用的虚拟内存值。

RES:进程占用的物理内存值。

SHR:进程使用的共享内存值。

S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。

%CPU:该进程占用的CPU使用率。

%MEM:该进程占用的物理内存和总内存的百分比。

TIME+:该进程启动后占用的总的CPU时间 ( CPU 使用时间的累加 )

Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

 

top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。

<空格>:立刻刷新。

P:根据CPU使用大小进行排序。

T:根据时间、累计时间排序。

q:退出top命令。

m:切换显示内存信息。

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

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

M:根据使用内存大小进行排序。

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

 

o 快捷键可以调整各字段的位置,按o快捷键显示如下:


Current Fields: AEHIOQTWKNMbcdfgpjlrsuvyzX for window 1:Def
Upper case letter moves field left, lower case right
* A: PID = Process Id 0x00000400 PF_SIGNALED
* E: USER = User Name 0x00000800 PF_MEMALLOC
* H: PR = Priority 0x00002000 PF_FREE_PAGES (2.5)
* I: NI = Nice value 0x00008000 debug flag (2.5)
* O: VIRT = Virtual Image (kb) 0x00024000 special threads (2.5)
* Q: RES = Resident size (kb) 0x001D0000 special states (2.5)
* T: SHR = Shared Mem size (kb) 0x00100000 PF_USEDFPU (thru 2.4)
* W: S = Process Status
* K: %CPU = CPU usage
* N: %MEM = Memory usage (RES)
* M: TIME+ = CPU Time, hundredths
b: PPID = Parent Process Pid
c: RUSER = Real user name
d: UID = User Id
f: GROUP = Group Name
g: TTY = Controlling Tty
p: SWAP = Swapped size (kb)
j: #C = Last used cpu (SMP)
l: TIME = CPU Time
r: CODE = Code size (kb)
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

 

其中,AEHIOQTWKNMbcdfgpjlrsuvyzX 表示当前显示的可以调整的列,也就是 × 标识的列,每列都对应一个字母,现在,按‘E’ ,USER列就先下移,按‘e’ USER列就像下移,以此类推。

f 快捷键调整是否显示某列,按 f 键显示如下:


Current Fields: AEHIOQTWKNMbcdfgpjlrsuvyzX for window 1:Def
Toggle fields via field letter, type any other key to return
* A: PID = Process Id 0x00000400 PF_SIGNALED
* E: USER = User Name 0x00000800 PF_MEMALLOC
* H: PR = Priority 0x00002000 PF_FREE_PAGES (2.5)
* I: NI = Nice value 0x00008000 debug flag (2.5)
* O: VIRT = Virtual Image (kb) 0x00024000 special threads (2.5)
* Q: RES = Resident size (kb) 0x001D0000 special states (2.5)
* T: SHR = Shared Mem size (kb) 0x00100000 PF_USEDFPU (thru 2.4)
* W: S = Process Status
* K: %CPU = CPU usage
* N: %MEM = Memory usage (RES)
* M: TIME+ = CPU Time, hundredths
b: PPID = Parent Process Pid
c: RUSER = Real user name
d: UID = User Id
f: GROUP = Group Name
g: TTY = Controlling Tty
p: SWAP = Swapped size (kb)
j: #C = Last used cpu (SMP)
l: TIME = CPU Time
r: CODE = Code size (kb)
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

Flags field:
0x00000001 PF_ALIGNWARN
0x00000002 PF_STARTING
0x00000004 PF_EXITING
0x00000040 PF_FORKNOEXEC
0x00000100 PF_SUPERPRIV
0x00000200 PF_DUMPCORE

其中,AEHIOQTWKNMbcdfgpjlrsuvyzX 表示当前显示的可以调整的列,也就是 × 标识的列,每列都对应一个字母,现在,按对应列的字母,即可调整是否显示对应列,大写字母(×)标识为显示,小写(无×)标识为不显示

k 快捷键,杀死指定进程,按k,提示输入pid
        r 快捷键,调整某进程的nice值,按r,提示输入pid

F/O 指定排序列 ,用法类似f

可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据