Skip to content

Linux命令之Top命令详解

Top命令:Unix/Linux的性能工具之一,系统管理员可用其监视进程和Linux整体性能。

[root@localhost ~]# top
top - 17:33:13 up 29 days, 23:30,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 244 total,   2 running, 242 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   752352 total,   137896 free,   104916 used,   509540 buff/cache
KiB Swap:  2129916 total,  2102604 free,    27312 used.   443460 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                  
    1 root      20   0  201780   3176   1728 S  0.0  0.4   0:38.83 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.15 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.09 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0
   10 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/1
   …………

结果详解:

前五行是系统整体的统计信息,第一行为任务队列信息,第二、三为进程和CPU的信息,当有多个CPU时,内容可能会超过2行。最后两行为内存信息。

七行以下的则是各进程(任务)的状态监控。

top - 
17:33:13           #当前运行top时间
up 29 days         #当前系统已持续运行时间
1 user             #当前登录用户数
load average: 0.00, 0.01, 0.05   #系统负载,即任务队列的平均长度。三个值分别是1、5、15分钟到现在的平均值。

Tasks: 
244 total          #进程总数
2 running          #正在运行的进程数
242 sleeping       #睡眠的进程数
0 stopped          #停止的进程数
0 zombie           #僵尸进程数

%Cpu(s):  
0.0 us             #用户空间占用cpu百分比
0.0 sy             #内核空间占用cpu百分比
0.0 ni             #用户进程空间内改变过优先级的进程占用CPU百分比
99.9 id            #空闲CPU百分比
0.0 wa             #等待输入输出的CPU时间百分比
0.0 hi             #硬件CPU中断占用百分比
0.0 si             #软中断占用百分比
0.0 st             #虚拟机占用百分比

KiB Mem :
752352 total       #物理内存总量
137896 free        #空闲内存总量
104916 used        #使用的物理内存总量
509540 buff/cache  #用作内核缓存的内存量

KiB Swap:
2129916 total       #交换区总量
2102604 free        #空闲交换区总量
27312 used          #使用的交换区总量
443460 avail Mem

PID       #进程ID
USER      #进程所有者
PR        #进程优先级
NI        #Nice值;负值表示高优先级,正值表示低优先级
VIRT      #进程使用的虚拟内存总量
RES       #进程使用的、未被换出的物理内存大小
SHR       #共享内存大小,单位kb
S         #进程状态;D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU      #上次更新到现在的CPU时间占用百分比
%MEM      #进程使用的物理内存百分比
TIME+     #进程使用的CPU时间总计,单位1/100秒
COMMAND   #进程名称(命令名)

命令使用

top使用格式  top – d p q S s i c…

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的进程的资源使用情况,并显式该进程启动的命令行参数

Published in运维工具

Be First to Comment

发表评论

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