Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。在本篇中,我们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还可以运行很多命令。
不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助。
1. Top 命令输出:
首先,让我们了解一下输出。top命令会显示系统的很多信息。我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出:
[root@localhost ~]# top
top - 09:55:12 up 2 days, 14:48, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.1%sy, 0.0%ni, 99.3%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16314244k total, 9085504k used, 7228740k free, 223052k buffers
Swap: 16383992k total, 743588k used, 15640404k free, 1864564k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2890 root 20 0 4425m 253m 9900 S 0.7 1.6 12:20.26 java
2949 root 20 0 6492m 852m 6008 S 0.7 5.3 111:10.77 java
2603 root 20 0 5105m 400m 6308 S 0.3 2.5 16:12.28 java
2630 root 20 0 5054m 316m 5552 S 0.3 2.0 20:43.35 java
2765 root 20 0 4948m 308m 6020 S 0.3 1.9 11:33.45 java
2834 root 20 0 4959m 295m 5756 S 0.3 1.9 11:00.81 java
6666 root 20 0 3710m 386m 5756 S 0.3 2.4 164:54.30 java
23039 root 20 0 4626m 385m 14m S 0.3 2.4 3:15.49 java
23429 root 20 0 5570m 734m 16m S 0.3 4.6 4:07.07 java
1 root 20 0 19356 924 748 S 0.0 0.0 0:00.98 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.53 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.98 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.19 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.71 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
9 root 20 0 0 0 0 S 0.0 0.0 0:04.56 ksoftirqd/1
10 root RT 0 0 0 0 S 0.0 0.0 0:00.11 watchdog/1
11 root RT 0 0 0 0 S 0.0 0.0 0:00.06 migration/2
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/2
13 root 20 0 0 0 0 S 0.0 0.0 0:06.17 ksoftirqd/2
14 root RT 0 0 0 0 S 0.0 0.0 0:00.13 watchdog/2
15 root RT 0 0 0 0 S 0.0 0.0 0:00.01 migration/3
16 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/3
17 root 20 0 0 0 0 S 0.0 0.0 0:01.46 ksoftirqd/3
18 root RT 0 0 0 0 S 0.0 0.0 0:00.14 watchdog/3
19 root RT 0 0 0 0 S 0.0 0.0 0:00.17 migration/4
前几行水平显示了不同系统参数的概括,接下来是进程和它们在列中的属性。
1.1 系统运行时间和平均负载:
top - 09:55:12 up 2 days, 14:48, 3 users, load average: 0.00, 0.00, 0.00
top命令的顶部显示与uptime命令相似的输出。
这些字段显示:
- 当前时间
- 系统已运行的时间
- 当前登录用户的数量
- 相应最近5、10和15分钟内的平均负载。
可以使用'l'命令切换uptime的显示
1.2 任务:
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示。
1.3 CPU 状态:
Cpu(s): 0.3%us, 0.1%sy, 0.0%ni, 99.3%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
下一行显示的是CPU状态。 这里显示了不同模式下的所占CPU时间的百分比。这些不同的CPU时间表示:
- us, user: 运行(未调整优先级的) 用户进程的CPU时间
- sy,system: 运行内核进程的CPU时间
- ni,niced:运行已调整优先级的用户进程的CPU时间
- wa,IO wait: 用于等待IO完成的CPU时间
- hi:处理硬件中断的CPU时间
- si: 处理软件中断的CPU时间
- st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
可以使用't'命令切换显示。也可以按 1,显示每个CPU的运行状态
Cpu0 : 1.3%us, 0.0%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 95.7%id, 4.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
1.4 内存使用:
Mem: 16314244k total, 9085504k used, 7228740k free, 223052k buffers
Swap: 16383992k total, 743588k used, 15640404k free, 1864564k cached
接下来两行显示内存使用率,有点像'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。
内存显示可以用'm'命令切换。
1.5 字段/列:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2630 root 20 0 5054m 316m 5552 S 1.0 2.0 20:45.32 java
2511 root 20 0 3645m 238m 5960 S 0.3 1.5 10:56.29 java
2765 root 20 0 4948m 308m 6020 S 0.3 1.9 11:34.54 java
2834 root 20 0 4959m 295m 5756 S 0.3 1.9 11:01.83 java
2890 root 20 0 4425m 253m 9900 S 0.3 1.6 12:21.91 java
2949 root 20 0 6492m 852m 6008 S 0.3 5.3 111:12.28 java
3259 root 20 0 2801m 282m 5428 S 0.3 1.8 5:42.62 java
6666 root 20 0 3710m 386m 5756 S 0.3 2.4 164:55.18 java
23039 root 20 0 4626m 385m 14m S 0.3 2.4 3:16.02 java
23429 root 20 0 5570m 734m 16m S 0.3 4.6 4:08.40 java
26407 root 20 0 15160 1348 956 R 0.3 0.0 0:00.26 top
1 root 20 0 19356 924 748 S 0.0 0.0 0:00.98 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.53 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.98 ksoftirqd/0
在横向列出的系统属性和状态下面,是以列显示的进程。不同的列代表下面要解释的不同属性。
默认上,top显示这些关于进程的属性:
PID
进程ID,进程的唯一标识符
USER
进程所有者的实际用户名。
PR
进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI
进程的nice值(优先级)。越小的值意味着越高的优先级。
VIRT
进程使用的虚拟内存。
RES
驻留内存大小。驻留内存是任务使用的非交换物理内存大小。
SHR
SHR是进程使用的共享内存。
S
这个是进程的状态。它有以下不同的值:
- D - 不可中断的睡眠态。
- R – 运行态
- S – 睡眠态
- T – 被跟踪或已停止
- Z – 僵尸态
%CPU
自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM
进程使用的可用物理内存百分比。
TIME+
任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND
运行进程所使用的命令。
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
2. 交互命令:
我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。
2.1 ‘h’: 帮助
首先,我们可以用'h'或者'?'显示交互命令的帮助菜单。
Help for Interactive Commands - procps version 3.2.8
Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off.
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 )
Press 'h' or '?' for help with Windows,
any other key to continue
2.2 ‘<ENTER>’ 或者 ‘<SPACE>’: 刷新显示
top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。
2.3 ‘A’: 切换交替显示模式(注意键盘要大些)
这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不同的字段):
- Def (默认字段组)
- Job (任务字段组)
- Mem (内存字段组)
- Usr (用户字段组)
这四组字段共有一个独立的可配置的概括区域和它自己的可配置任务区域。4个窗口中只有一个窗口是当前窗口。当前窗口的名称显示在左上方。(译注:只有当前窗口才会接受你键盘交互命令)
[root@localhost ~]# top
1:Def - 10:10:54 up 2 days, 15:03, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.1%sy, 0.0%ni, 99.5%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16314244k total, 9128600k used, 7185644k free, 224584k buffers
Swap: 16383992k total, 743544k used, 15640448k free, 1903480k cached
1 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2630 root 20 0 5054m 316m 5552 S 0.7 2.0 20:48.40 java
2511 root 20 0 3645m 238m 5960 S 0.3 1.5 10:57.84 java
2603 root 20 0 5105m 401m 6308 S 0.3 2.5 16:16.16 java
2765 root 20 0 4948m 308m 6052 S 0.3 1.9 11:36.26 java
2890 root 20 0 4425m 252m 9900 S 0.3 1.6 12:26.02 java
2949 root 20 0 6492m 853m 6232 S 0.3 5.4 111:18.65 java
6666 root 20 0 3710m 386m 5760 S 0.3 2.4 164:57.42 java
26462 root 20 0 15160 1352 960 R 0.3 0.0 0:00.06 top
1 root 20 0 19356 924 748 S 0.0 0.0 0:00.98 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.53 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.98 ksoftirqd/0
2 PID PPID TIME+ %CPU %MEM PR NI S VIRT SWAP RES UID COMMAND
26462 26341 0:00.06 0.3 0.0 20 0 R 15160 0 1352 0 top
26341 26337 0:00.04 0.0 0.0 20 0 S 105m 0 1860 0 bash
26337 1688 0:00.38 0.0 0.0 20 0 S 98.0m 0 4024 0 sshd
26209 1772 0:00.00 0.0 0.0 20 0 S 81352 0 3376 89 pickup
23456 15607 0:00.96 0.0 0.0 20 0 S 98.6m 0 608 0 tail
23429 15607 4:20.44 0.0 4.6 20 0 S 5570m 0 735m 0 java
23070 23006 0:03.59 0.0 0.0 20 0 S 98.6m 0 604 0 tail
23039 23006 3:32.40 0.0 2.4 20 0 S 4626m 0 385m 0 java
23006 15603 0:00.01 0.0 0.0 20 0 S 105m 0 1900 0 bash
21854 21850 0:00.18 0.0 0.0 20 0 S 57808 0 2392 0 sftp-server
21850 1688 0:00.56 0.0 0.0 20 0 S 99.3m 0 5340 0 sshd
15607 15603 0:00.23 0.0 0.0 20 0 S 105m 0 1804 0 bash
3 PID %MEM VIRT SWAP RES CODE DATA SHR nFLT nDRT S PR NI %CPU COMMAND
2949 5.4 6492m 33m 853m 4 6.2g 6232 2917 0 S 20 0 0.3 java
23429 4.6 5570m 0 735m 4 5.3g 16m 0 0 S 20 0 0.0 java
10029 3.0 5958m 14m 476m 4 5.7g 6076 167 0 S 20 0 0.0 java
2603 2.5 5105m 77m 401m 4 4.8g 6308 413 0 S 20 0 0.3 java
6666 2.4 3710m 70m 386m 4 3.5g 5760 523 0 S 20 0 0.3 java
23039 2.4 4626m 0 385m 4 4.4g 14m 0 0 S 20 0 0.0 java
2630 2.0 5054m 94m 316m 4 4.8g 5552 235 0 S 20 0 0.7 java
2765 1.9 4948m 57m 308m 4 4.7g 6052 257 0 S 20 0 0.3 java
2834 1.9 4959m 59m 295m 4 4.7g 5756 409 0 S 20 0 0.0 java
3259 1.8 2801m 21m 282m 4 2.6g 5428 965 0 S 20 0 0.0 java
2890 1.6 4425m 47m 252m 4 4.2g 9900 598 0 S 20 0 0.3 java
2511 1.5 3645m 52m 238m 4 3.4g 5960 335 0 S 20 0 0.3 java
4 PID PPID UID USER RUSER TTY TIME+ %CPU %MEM S COMMAND
1411 1 29 rpcuser rpcuser ? 0:00.00 0.0 0.0 S rpc.statd
1393 1 32 rpc rpc ? 0:00.17 0.0 0.0 S rpcbind
2949 1 0 root root ? 111:18.65 0.3 5.4 S java
23429 15607 0 root root pts/1 4:20.44 0.0 4.6 S java
10029 1 0 root root ? 25:20.25 0.0 3.0 S java
2603 1 0 root root ? 16:16.16 0.3 2.5 S java
6666 1 0 root root ? 164:57.42 0.3 2.4 S java
23039 23006 0 root root pts/4 3:32.40 0.0 2.4 S java
2630 1 0 root root ? 20:48.40 0.7 2.0 S java
2765 1 0 root root ? 11:36.26 0.3 1.9 S java
2834 1 0 root root ? 11:03.46 0.0 1.9 S java
3259 1 0 root root ? 5:43.69 0.0 1.8 S java
2:Job - 10:15:37 up 2 days, 15:08, 3 users, load average: 0.01, 0.01, 0.00
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.2%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16314244k total, 9187660k used, 7126584k free, 225056k buffers
Swap: 16383992k total, 743516k used, 15640476k free, 1923068k cached
<span style="background-color: rgb(255, 0, 0);">Choose field group (1 - 4): </span>
1 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2834 root 20 0 4959m 295m 5756 S 0.8 1.9 11:04.23 java
2890 root 20 0 4425m 252m 9904 S 0.8 1.6 12:27.97 java
10029 root 20 0 5958m 476m 6076 S 0.8 3.0 25:22.98 java
26471 root 20 0 15160 1352 964 R 0.8 0.0 0:00.14 top
1 root 20 0 19356 924 748 S 0.0 0.0 0:00.98 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.53 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.98 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.19 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.71 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
2.4 ‘B’: 触发粗体显示
一些重要信息会以加粗字体显示。这个命令可以切换粗体显示。
2.5 ‘D’ 或‘S’: 设置显示的刷新间隔
当按下'D'或'S'时,你将被提示输入一个值(以秒为单位),它会以设置的值作为刷新间隔。如果你这里输入了1,top将会每秒刷新。
top - 10:21:42 up 2 days, 15:14, 3 users, load average: 0.08, 0.02, 0.01
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16314244k total, 9212092k used, 7102152k free, 225620k buffers
Swap: 16383992k total, 743512k used, 15640480k free, 1943584k cached
<span style="background-color: rgb(255, 0, 0);">Change delay from 1.0 to: </span>
PID %MEM VIRT SWAP RES CODE DATA SHR nFLT nDRT S PR NI %CPU COMMAND
2949 5.4 6492m 33m 853m 4 6.2g 6232 2917 0 S 20 0 0.0 java
23429 4.6 5570m 0 735m 4 5.3g 16m 0 0 S 20 0 0.0 java
10029 3.0 5958m 14m 476m 4 5.7g 6076 167 0 S 20 0 0.0 java
23039 2.7 4626m 0 422m 4 4.4g 14m 0 0 S 20 0 0.0 java
2603 2.5 5105m 77m 400m 4 4.8g 6308 413 0 S 20 0 0.0 java
2.6 ‘l’、‘t’、‘m’: 切换负载、任务、内存信息的显示
这会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。
2.7 ‘f’: 字段管理
用于选择你想要显示的字段。用'*'标记的是已选择的。
Current Sort Field: N for window 3:Mem
Select sort field via field letter, type any other key to return
a: PID = Process Id
b: PPID = Parent Process Pid
c: RUSER = Real user name
d: UID = User Id
e: USER = User Name
f: GROUP = Group Name
g: TTY = Controlling Tty
h: PR = Priority
i: NI = Nice value
j: P = Last used cpu (SMP)
k: %CPU = CPU usage
l: TIME = CPU Time
m: TIME+ = CPU Time, hundredths
* N: %MEM = Memory usage (RES)
o: VIRT = Virtual Image (kb)
p: SWAP = Swapped size (kb)
q: RES = Resident size (kb)
r: CODE = Code size (kb)
s: DATA = Data+Stack size (kb)
t: SHR = Shared Mem size (kb)
u: nFLT = Page Fault count
v: nDRT = Dirty Pages count
w: S = Process Status
x: COMMAND = Command name/line
y: WCHAN = Sleeping in Function
z: Flags = Task Flags <sched.h>
Note1:
If a selected sort field can't be
shown due to screen width or your
field order, the '<' and '>' keys
will be unavailable until a field
within viewable range is chosen.
Note2:
Field sorting uses internal values,
not those in column display. Thus,
the TTY & WCHAN fields will violate
strict ASCII collating sequence.
(shame on you if WCHAN is chosen)
上下光标键在字段内导航,左光标键可以选择字段,回车或右光标键确认。
按'<'移动已排序的字段到左边,'>'则移动到右边。
2.8 ‘R’: 反向排序
切换反向/常规排序。
2.9 ‘c’: 触发命令
切换是否显示进程启动时的完整路径和程序名
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.6%us, 0.1%sy, 0.0%ni, 98.8%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16314244k total, 9272652k used, 7041592k free, 226360k buffers
Swap: 16383992k total, 743496k used, 15640496k free, 1960080k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2630 root 20 0 5054m 316m 5552 S 1.3 2.0 20:53.06 java <span style="font-family: Arial, Helvetica, sans-serif;">-Xmx512M -Xms256M -cp</span><span style="font-family: Arial, Helvetica, sans-serif;"> conf:lib/aopalliance-1.0.jar:lib/asm-4.2.jar:lib/aspectjrt-1.8.1.jar:lib/aspectjweaver-1.8.1.jar:lib/avro-1.7.3.jar:lib/avro-ipc-1.7.3.jar:lib</span>
2603 root 20 0 5105m 401m 6308 S 1.0 2.5 16:19.84 java -Xmx512M -Xms256M -cp conf:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/avro-1.7.3.jar:lib/avro-ipc-1.7.3.jar:lib/backport-util-concurrent-3.1.ja
23429 root 20 0 5570m 736m 16m S 1.0 4.6 4:36.05 java -Xmx1024M -Xms512M -cp conf:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/avro-1.7.3.jar:lib/avro-ipc-1.7.3.jar:lib/backport-util-concurrent-3.1.j
2949 root 20 0 6492m 853m 6232 S 0.7 5.4 111:28.49 java -Xmx1024M -Xms512M -cp conf:lib/ant-1.7.0.jar:lib/ant-launcher-1.7.0.jar:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/backport-util-concurrent-3.
38 root 20 0 0 0 0 S 0.3 0.0 0:08.94 [events/3]
2511 root 20 0 3645m 238m 5960 S 0.3 1.5 11:00.37 java -Xmx512M -Xms256M -cp conf:lib/address-serv-1.0.jar:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/backport-util-concurrent-3.1.jar:lib/c3p0-0.9.2.
2716 root 20 0 2203m 8888 4664 S 0.3 0.1 1:23.67 java -Xmx512M -Xms256M -cp conf:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/backport-util-concurrent-3.1.jar:lib/c3p0-0.9.2.1.jar:lib/cglib-nodep-2.2.2.jar:lib/classworlds-1
2890 root 20 0 4425m 252m 9908 S 0.3 1.6 12:32.05 java -Xmx512M -Xms256M -cp conf:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/backport-util-concurrent-3.1.jar:lib/c3p0-0.9.2.1.jar:lib/classworlds-1.1
6666 root 20 0 3710m 386m 5760 S 0.3 2.4 165:00.88 java -Xmx512M -Xms256M -cp conf:lib/aopalliance-1.0.jar:lib/asm-4.2.jar:lib/aspectjrt-1.8.1.jar:lib/aspectjweaver-1.8.1.jar:lib/avro-1.7.3.jar:lib/avro-ipc-1.7.3.jar:lib/backport-util-c
23039 root 20 0 4626m 461m 14m S 0.3 2.9 3:57.65 java -Xmx1024M -Xms512M -cp conf:lib/aopalliance-1.0.jar:lib/aspectjrt-1.6.8.jar:lib/aspectjweaver-1.6.8.jar:lib/avro-1.7.3.jar:lib/avro-ipc-1.7.3.jar:lib/backport-util-concurrent-3.1.jar:lib/c3p0-0.9.2.1.jar:
1 root 20 0 19356 924 748 S 0.0 0.0 0:00.98 /sbin/init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd]
2.10 ‘i’: 空闲任务
切换显示空闲任务。
2.11 ‘V’: 树视图
切换树视图。
2.12 ‘Z’: 改变配色
按下'Z'向用户显示一个改变top命令的输出颜色的屏幕。可以为8个任务区域选择8种颜色。
Help for color mapping - procps version 3.2.8
current window: 1:Def
color - 04:25:44 up 8 days, 50 min, 7 users, load average:
Tasks: 64 total, 2 running, 62 sleeping, 0 stopped,
Cpu(s): 76.5% user, 11.2% system, 0.0% nice, 12.3% idle
Nasty Message! -or- Input Prompt
PID TTY PR NI %CPU TIME+ VIRT SWAP STA Command
17284 pts/2 8 0 0.0 0:00.75 1380 0 S /bin/bash
8601 pts/1 7 -10 0.4 0:00.03 916 0 R < color -b
11005 ? 9 0 0.0 0:02.50 2852 1008 S amor -ses
available toggles: B =disable bold globally (On),
z =color/mono (On), b =tasks "bold"/reverse (On)
Select target as upper case letter:
S = Summary Data, M = Messages/Prompts,
H = Column Heads, T = Task Information
Select color as number:
0 = black, 1 = red, 2 = green, 3 = yellow,
4 = blue, 5 = magenta, 6 = cyan, 7 = white
Selected: target T ; color 1
press 'q' to abort changes to window '1:Def'
press 'a' or 'w' to commit & change another, <Enter> to commit and end
下面显示的是4中颜色显示的top视图。
2.13 ‘z’: 切换彩色显示
切换彩色,即打开或关闭彩色显示。
2.14 ‘x’ 或者 ‘y’
切换高亮信息:'x'将排序字段高亮显示(纵列);'y'将运行进程高亮显示(横行)。依赖于你的显示设置,你可能需要让输出彩色来看到这些高亮。
2.15 ‘u’: 特定用户的进程
显示特定用户的进程。你会被提示输入用户名。空白将会显示全部用户。
26337 1688 0:00.58 0.0 0.0 20 0 S 98.0m 0 4024 0 sshd
top - 10:34:39 up 2 days, 15:27, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.0%us, 0.2%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 16314244k total, 9296768k used, 7017476k free, 227092k buffers
Swap: 16383992k total, 743448k used, 15640544k free, 1983212k cached
<span style="background-color: rgb(255, 0, 0);">Which user (blank for all): </span>
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10029 root 20 0 5958m 476m 6372 S 4.0 3.0 25:30.67 java
2.16 ‘n’ 或 ‘#’: 任务的数量
设置最大显示的任务数量
top - 10:35:29 up 2 days, 15:28, 3 users, load average: 0.05, 0.01, 0.00
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 0.1%sy, 0.0%ni, 99.3%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16314244k total, 9305572k used, 7008672k free, 227164k buffers
Swap: 16383992k total, 743448k used, 15640544k free, 1991568k cached
<span style="background-color: rgb(255, 0, 0);">Maximum tasks = 20, change to (0 is unlimited): </span>
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23429 root 20 0 5570m 734m 16m S 1.0 4.6 4:43.75 java
2603 root 20 0 5105m 401m 6308 S 0.7 2.5 16:22.30 java
2.17 ‘k’: 结束任务
top命令中最重要的一个命令之一。用于发送信号给任务(通常是结束任务)。
2.18 ‘r’: 重新设置优先级
重新设置一个任务的调度优先级。
3. 命令行选项:
这些命令行选项与上面讨论的命令大多相同。top的输出可以用命令交互操作,但是你也可以带参数运行top来设置你想要的效果。
3.1 -b: 批处理模式
-b选项以批处理模式启动top命令。当你想要在文件中保存输出时是很有用的。
3.2 -c: 命令/程序名 触发:
如上面所讨论到的命令,这个选项会以上次记住的程序/命令显示的状态显示(是否显示完整路径)。
3.3 -d: 设置延迟间隔
设置top的显示间隔(以秒计)。比如。
[root@localhost ~]# top -d 1
将会以1秒的刷新间隔启动top。
3.4 -i: 切换显示空闲进程
这个选项设置top命令的上一次记住的相反的'i'状态。
3.5 -n: 设置迭代数量
用-n选项,你可以设置top退出前迭代的次数。
[root@localhost ~]# top -n 3
将会在刷新输出3次后退出。
3.6 -p: 监控特定的PID
你可以用-p选项监控指定的PID。PID的值为0将被作为top命令自身的PID。
3.7 -u 或 -U: 用户名 或者 UID
可以用这些选项浏览特定用户的进程。用户名或者UID可以在选项中指定。-p、-u和-U选项是互斥的,同时只可以使用这其中一个选项。当你试图组合使用这些选项时,你会得到一个错误:
[root@localhost ~]# top -p 2603 -u root
top: conflicting process selection