top命令参数详解



top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
常在linux系统下玩,这是必须掌握的命令之一;
下面详细说说这个命令:

敲入top进入:

top - 09:14:56 up 264 days, 20:56,  1 user,  load average: 0.02, 0.04, 0.00
Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st
Mem:    377672k total,   322332k used,    55340k free,    32592k buffers
Swap:   397308k total,    67192k used,   330116k free,    71900k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                        
    1 root      20   0  2856  656  388 S  0.0  0.2   0:49.40 init                                            
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                        
    3 root      20   0     0    0    0 S  0.0  0.0   7:15.20 ksoftirqd/0                                     
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

第一行

09:14:56 : 系统当前时间 
264 days, 20:56 : 系统开机到现在经过了多少时间 
1 users : 当前2用户在线 
load average: 0.02, 0.04, 0.00: 系统1分钟、5分钟、15分钟的CPU负载信息

第二行

Tasks:任务; 
87 total:很好理解,就是当前有87个任务,也就是87个进程。 
1 running:1个进程正在运行 
86 sleeping:86个进程睡眠 
0 stopped:停止的进程数 
0 zombie:僵死的进程数

第三行

Cpu(s):表示这一行显示CPU总体信息 
0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。 
0.7%sy:内核占用CPU时间百分比 
0.0%ni:改变过优先级的进程占用CPU的百分比 
99.3%id:空闲CPU时间百分比 
0.0%wa:等待I/O的CPU时间百分比 
0.0%hi:CPU硬中断时间百分比 
0.0%si:CPU软中断时间百分比 
注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;

第四行

Men:内存的意思 
8175320kk total:物理内存总量 
8058868k used:使用的物理内存量 
116452k free:空闲的物理内存量 
283084k buffers:用作内核缓存的物理内存量

第五行

Swap:交换空间 
6881272k total:交换区总量 
4010444k used:使用的交换区量 
2870828k free:空闲的交换区量 
4336992k cached:缓冲交换区总量

进程信息

再下面就是进程信息:

PID:进程的ID 
USER:进程所有者 
PR:进程的优先级别,越小越优先被执行 
NInice:值 
VIRT:进程占用的虚拟内存 
RES:进程占用的物理内存 
SHR:进程使用的共享内存 
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 
%CPU:进程占用CPU的使用率 
%MEM:进程使用的物理内存和总内存的百分比 
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 
COMMAND:进程启动命令名称

top命令交互操作指令

下面列出一些常用的 top命令操作指令

q:退出top命令
<Space>:立即刷新
s:设置刷新时间间隔
c:显示命令完全模式
t::显示或隐藏进程和CPU状态信息
m:显示或隐藏内存状态信息
l:显示或隐藏uptime信息
f:增加或减少进程显示标志
S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
u:指定显示用户进程
r:修改进程renice值
kkill:进程
i:只显示正在运行的进程
W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。
h:帮助命令。
q:退出

注:强调一下,使用频率最高的是P、T、M,因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多;
注:通过”shift + >”或”shift + <”可以向右或左改变排序列
如果只需要查看内存:可用free命令。只查看uptime信息(第一行),可用uptime命令;

top使用格式

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

参数说明

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 
p 通过指定监控进程ID来仅仅监控某个进程的状态。 
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 
S 指定累计模式 
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 
i 使top不显示任何闲置或者僵死进程。 
c 显示整个命令行而不只是显示命令名 

其他实用命令
下面介绍在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   //每隔5秒显式所有进程的资源占用情况
top -d 2  //每隔2秒显式所有进程的资源占用情况
top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

标签: linux, 负载, 性能, top

相关文章

评论已关闭