【功能说明】
top命令用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各 个进程的资源占用状况。该命令可以按照CPU的使用、内存的使用和执行时间对系 统任务进程进行排序显示,同时top命令还可以通过交互式命令进行设定显示。
【语法格式】
top [option]
top [选项]
。说明:
在top命令及后面的选项里,每个元素之间都至少要有一个空格。
【选项说明】
参数选项
解释说明(带※的为重点)
-a
将进程按照使用内存排序
-b
以批处理的模式显示进程信息,输出结果可以传递给其他程序或写入 到文件中。在这种模式下,top命令不会接受任何输入,一直运行直到达 到-n选项设置的阈值,或者按Ctrl+C等组合键终止程序
-c
显示进程的整个命令路径,而不是只显示命令名称
-d
指定每两次屏幕信息刷新之间的时间间隔
-H
指定这个可以显示每个线程的情况,否则就是进程的总的状态
-i
不显示闲置或者僵死的进程信息
-n
top输出信息更新的次数,完成后将退出top命令
-P
显示指定的进程信息
交互式命令
交互式命令就是在top命令执行过程中使用的一些命令。表9-9针对交互式命令 进行了说明。
交互式命令
含 义
h或?
显示帮助信息,给出交互式命令的一些说明总结
Z
全局颜色设置
B
全局字体加粗设置
1
切换是否显示平均负载和启动时间信息
t
切换是否显示进程和CPU状态信息
m
切换是否显示内存信息
1
数字1,用于多核CPU监控,可监控每个逻辑CPU的状况
I
Irix/Solaris 模式
f
从当前显示列表中添加或删除项目。按“f‘键之后会显示列的列表,按“a〜z” 键即可显示或隐藏对应的列,最后按回车键确定
0
改变top输出信息中显示项目的顺序。按小写的“a〜z”键可以将相应的列向 右移动,而按大写的“A〜Z”键可以将相应的列向左移动,最后按回车键确定
F或O
选择排序的列
<,>
移动选择排序的列,“v”选择左邻一列排序,“〉”选择右邻一列排序
(续)
交互式命令
含 义
R
切换正常/反转排序
H
切换是否显示线程信息
c
切换是否显示完整命令行和命令名称信息
i
切换是否显示闲置进程和僵死进程
S
切换到累计模式
X
以高亮的形式排序对应列,需要结合b/z使用
y
高亮运行的进程,需要结合b/z使用
z
打开/关闭颜色
b
打开/关闭加粗
u
显示指定用户相关的进程信息
n或#
设置显示进程的最大行数
k
终止一个进程,系统将提示用户输入一个需要终止进程的PID
r
重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID,以及需 要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥 有更高的优先权。默认值是10
d或s
改变top输出信息两次刷新之间的时间,系统将提示输入新的时间,单位是S。 如果是小数,则换算成ms;如果输入0,那么系统输出将会不断刷新,默认刷 新时间是3s。需要注意的是,如果设置太小的时间,则可能会引起系统不断刷新, 无法看清输出显示情况,而且系统负载也会加大
W
将当前top设置写入"〜/.toprc ”文件中
q
退出top显示
使用范例
范例9-20 :显盘程信息。
[root@oldboy ~]# top #< = =使用top命令通常不接任何参数,若需要其他更 强大的功能则需要配合交互命令。 top - 02:39:54 up 1 day, 16:36, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi/ 0.0%si, 0.0 %st Mem: 486224k total, 401188k used, 85036k free, 42352k buffers Swap: 1535996k total, Ok used, 1535996k free, 216936k cached PID USER PR NI VIRT RES SHRS%CPU %MEM TIME+ COMMAN 1 root200 19232 1588 1300 S 0.0 0.3 0:00.74 init 2 root20000OS0.00.00:00.00 kthreadd 3 rootRT000OS0.00.00:00.00 migration/0 4 root20000OS0.00.00:00.13 ksoftirqd/O
下面针对命令各行的内容进行说明。
第一行,任务队列信息,同叩time命令的执行结果。
• 02: 39: 54 当前系统时间。
•up 1 day, 16: 36 系统已经运行了 1天16小时36分。
• 2 users当前有2个用户登录系统。
, load average: 0. 00, 0. 00, 0. 00 load average后面的三个数分别是 1 分 钟、5分钟、15分钟的平均负载情况。
第二行,Tasks为任务(进程)。从上面的信息可以看出,系统现在共有82个 进程,其中处于运行状态的有1个,81个在休眠(sleep ) , stoped状态。个, zombie状态(僵死)的有0个。
第三行,CPU状态信息。
• 0. 0%us 用户空间占用CPU的百分比。
• 0. 0%sy 内核空间占用CPU的百分比。
• 0. 0%ni 改变过优先级的进程占用CPU的百分比。
• 100. 0%id 空闲CPU百分比。
• 0. 0%wa I/O等待占用CPU的百分比。
• 0. 0%hi 硬中断(Hardware IRQ)占用CPU的百分比。
• 0. 0%s i 软中断(Software I interrupts)占用CPU的百分比。
• 0. 0%st 虚拟机占用CPU的百分比。
第四行,内存状态。
• 486224k totaI 物理内存总量。
• 401188k used使用中的内存总量。
• 85036k free 空闲内存总量。
, 42352k buffers 缓冲的内存量。
第五行,swap交换分区信息。
・1535996k total 交换区总量。
• Ok used 使用的交换区总量。
• 1535996k free 空闲交换区总量。
, 216936k cached 缓存的内存量。
OH )计算真正可用的内存数为:第四行的free+第四行的buffers+第五行的 cachedo
2)在对内存进行监控时,我们要时刻关注top命令里第五行swap交换分区的 used,如果这个数值还在不断地变化,则说明内核正在不断进行内存和swap的数据 交换,这表示内存真的不够用了或者程序运行有内存溢出问题。
第六行,空行。
从第七行开始,给出的是各进程(任务)的状态监控。
• PID 进程 id。
• USER进程所有者。
• PR进程优先级。
• Nl nice值,负值表示高优先级,正值表示低优先级。
• VIRT进程使用的虚拟内存总量,单位为kb。
-RES进程使用的、未被换出的物理内存大小,单位为kb。
•SHR共享内存大小,单位为kb。
• S 进程状态。D=不可中断的睡眠状态R=运行S=睡眠T=跟踪/停止Z=僵尸进 程。
・%CPU 上次更新到现在的CPU时间占用百分比。
• %MEM进程使用的物理内存百分比。
•TIME+ 进程使用的CPU时间总计,单位1/100秒。
• COMMAND进程名称(命令名/命令行)。
范例9-21 :显示多核桐核CPU的信息。
在top基本视图中(如图9-2所示),按键盘数字,可监控每个逻辑CPU 的就兄。
观察图9-2可以发现,服务器有8个逻辑CPU ,实际上是2个物理CPU,再按数 字键1 ,就会返回到top基本视图界面。
下面虚拟机的系:
top -11:52:15 up 17:39, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0 %st #v = =top基本视图界面显示为Cpu(s)。 Mem: 486224k total, 315868k used, 170356k free, 38960k buffers Swap: 1535996k total Ok used, 1535996k free, 171356k cached 虚拟机一个CPU也能看到,只是不明显 top - 11:52:27 up 17:39, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie CpuO : 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0 %st #< = =按下数字键1,显示为CpuO。 Mem: 486224k total, 315868k used, 170356k free, 38960k buffers Swap: 1535996k total, 0k used, 1535996k free, 171356k cached 范例9-22 :将进程按照使用内存排序。 [root@oldboy ~]#top -a #< = =^^参数-a将进倒安照内梆E序。 top -12:06:10 up 17:53, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0 %st Mem: 486224k total, 321636k used, 164588k free, 39072k buffers Swap: 1535996k total, 0k used, 1535996k free, 172136k cached 6010 root 20 0 98376 4244 3280 S 0.0 0.9 0:00.08 sshd 6039 root 20 0 185m 3360 2652 S 0.0 0.7 0:00.01 sudo 6195 root 20 0 185m 3360 2652 S 0.0 0.7 0:00.06 sudo 6665 root 20 0 185m 3360 2652 S 0.0 0.7 0:00.01 sudo 6041 root 20 0 160m 2180 1728 S 0.0 0.4 0:00.00 su
范例9-23 :以批处理模式显示进程信息
[root@oldboy ~]#top -b #< ==使用参数七可以看到命令执行结果不停地向 下刷新。 20 0 105m 1776 1416 S 0.0 0.4 0:00.00 bash 20 0 185m 3360 2652 S 0.0 0.7 20 0 160m 2176 1728 S 0.0 0.4 0:00.00 su 20 0 105m 1956 1436 S 0.0 0.4 0:00.00 bash 20 0 0 0 0 S 0.0 0.0 0:00.00 flush-8:0 20 0 15016 1156 912 R 0.0 0.2 0:00.00 top AC #< = =退出使用快捷键Ctrl+C。
范例9-24 :显示进程的完整路径。
[root@oldboy -]# top -c #< ==使用参数-c显示进程的整个命令路径,而不 是只显正命令名称。 top - 02:55:01 up 1 day, 16:51, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0 %st Mem: 486224k total, 399916k used, 86308k free, 42388k buffers Swap: 1535996k total, 0k used, 1535996k free, 216944k cached PID USER PR NI VIRT RES SHRS%CPU %MEM TIME+ COMMA ND 16232 mysql 20 0 760m 26m 6028 S 0.3 5.6 0:13.13 /application/ mysql-5.5.32/bin/mysqld —defaults- 1root 2root 3root 4root 20 0 19232 1588 1300 S 0.0 0.3 0:00.74 /sbin/init 20 0 RT 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd] 0 S 0.0 0.0 0:00.00 [migration/0] 0 0 0 S 0.0 0.0 0:00.14 [ksoftirqd/O]
范例9-25 :设置执枝op命令后的信息刷新时间。
[root@oldboy~]#top-d 3#< ==使用参数-d指定更新周期为3秒,也就是说 命令结果每隔3s刷新一次。
范例9-26 :设置执彳ftop命令后的信息刷新烦
[root@oldboy -]# top -n 2 #< ==使用参数-n指定更新次数为2次,也就是 说命令结果刷新两次后终止退出,-n参数可以和-d参数配合使用。
范例9-27 :显示指定的进程信息。
[root@oldboy -]# top -p 15456 #< = =使用-p选项接上指定的进程号,就可 IUR显示这个进程的信息了。 top - 02:51:33 up 1 day, 16:48, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0 %st Mem: 486224k total, 400040k used, 86184k free, 42376k buffers Swap: 1535996k total, 0k used, 1535996k free, 216940k cached PID USER PR NI VIRT RES SHRS%CPU %MEM TIME+ COMMA ND 15456 mysql 20 0 760m 27m 6440 S 0.0 5.8 0:15.72 mysqld
范例9-28 :字段排序(交互模式)例子。
默认进入top命令时,各进程是按照CPU的使用量来排序的。
场景1 :敲击键盘"b”和”x”,得到图9-3。
top - 19:06:13 up 7:48,2 users, load average: 0. 00, 0. 00, 0. 00 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu(s) : 0. 0%us,0. 0%sy, 0. 0%ni, 100. 0%id,0. 0%wa, 0. 0%hi, 0. 0%si, 0. 0%st Mem:486640k total, 132572k used, 354068k free,25588k buffers Swap: 1048572k total,0k used, 1048572k free,30524k cached PIDUSERPRNIVIRTRESSHRs%CPU %MEMTIME+ COMMAND 1root2001923215121224s0. 00. 30:01.30 init 2root200000s0. 00. 00:00.00 kthreadd 3rootRT0000s0. 00.00:00.00 migration/0 4 K—root200 Q0 Q0 C0 Cs ―CL0. 00. 0
图9-3 敲击键盘"b"和“X”后的场景图
读者可以反复敲击,即可看出不同的显示。
场景2 :敲击键盘〃z”和〃x”,得到图9-4。
top -19:08:08 up 7:49,2 users,loadaverage: 0. 00,0. 00, 0. 00 7417300 zo Cpu (sj0. 0%0. 0%0. 0%100. 0%0. 0%0. 0%0. 0%0. Of Mcm •486640k132572k354068k25588k 11048572k0k1048572k30524k PIDUSERPR NIVIRT RESSHRS %CPU %MEMTIME+ COMMAND 0. 0 0. 0 0. 0 0. 0
图9-4 敲击键盘“z”和“x”的场景图
敲击Z后,可以看到大部分内容都变成了红色,再敲X ,对列高亮显示。
场景3 :通过〃>”或可以向右或向左改变排序列,如图9-5所示。
top - 19:09:01 up 7:50,2 users, load average: 0.00, 0. 00, 0. 00 Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie Cpu (s) : 0. 8%us,0. 0%sy, 0. 0%ni, 99. 2%id,0. 0%wa,0. 0%hi,0. 0%si, 0. 0%st Mem:486640k total, 132572k used, 354068k free,25588k buffers Swap: 1048572k total,0k used, 1048572k free,30524k cached PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND 1998root20098. Im43963392S0. 00. 90::00. 41sshd 1945root20098. Im43923392S0. 00. 90::00. 52sshd 2000root200105m18121420S0. 00.40::00. 04bash 1947root200105m18001420S0. 00. 40::00. 00bash 1277root200249m17161116S0. 00. 40::00. 03 rsyslogd 1root2001923215121224S0. 00. 30::01. 30init 1309root200114m1248652S0. 00. 30::00.14crond
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容