IT虾米网

top命令

itxm 2022年06月12日 程序员 184 0

一 点睛

top命令是Linux下最常用的性能分析工具,能够实时显示系统各个进程的资源占有状态,类似Windows的任务管理器。

二 实战

[root@localhost charpter05]# top 
top - 18:10:19 up  3:31,  1 user,  load average: 0.00, 0.01, 0.05 
Tasks:  93 total,   1 running,  92 sleeping,   0 stopped,   0 zombie 
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
KiB Mem :  1016188 total,   735664 free,    87228 used,   193296 buff/cache 
KiB Swap:  4063228 total,  4063228 free,        0 used.   766204 avail Mem 
 
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                   
1283 root      20   0  157684   2144   1504 R  0.3  0.2   0:00.06 top                                                                       
    1 root      20   0  128168   6820   4052 S  0.0  0.7   0:01.49 systemd                                                                   
    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   0:00.04 ksoftirqd/0                                                               
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                              
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.06 kworker/u2:0                                                              
    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.27 rcu_sched                                                                 
   10 root      rt   0       0      0      0 S  0.0  0.0   0:00.08 watchdog/0                                                                
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                 
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                                     
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd                                                                
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                                                 
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                                               
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                    
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                                   
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md                                                                        
   25 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0                                                                   
   26 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd                                                                      
   27 root      39  19       0      0      0 S  0.0  0.0   0:00.08 khugepaged                                                                
   28 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto                                                                    
   36 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld                                                                  
   38 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kmpath_rdacd                                                              
   39 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kpsmoused                                                                 
   40 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ipv6_addrconf                                                             
   60 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 deferwq                                                                   
   92 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kauditd                                                                   
  269 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff                                                                   
  279 root      20   0       0      0      0 S  0.0  0.0   0:00.03 scsi_eh_0                                                                 
  280 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_0                                                                
  281 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_1                                                                 
  282 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kworker/u2:2

三 说明

第1行(top):

当前系统的时间——18:10:19;

开机到目前为止所经过的时间——up 3:31;

当前登录系统的人数——1 user:

系统在最近1、5、15分钟内的平均负载——load average: 0.00, 0.01, 0.05

一般情况下,对于单个处理器来说,负载在0~1.00是正常的,超过1.00就要引起注意了。在多核处理器中,系统均值不应该高于处理器核心数。当平均负载高于 CPU 数量的 70% 时,就应该分析排查负载高的问题了。

平均负载理解参考:CSDN

第2行(tasks):这一行显示的是进程的总量与进程的状态。

进程的总数

93 total

正在运行的进程数

1 running

睡眠的进程数

92 sleeping

停止的进程数

0 stopped

僵尸进程数

0 zombie

第3行(Cpu(s)):这一行显示的是cpu的整体负载

用户空间占用CPU的百分比

0.0 us

系统空间占用CPU的百分比

0.3 sy

用户空间内改变过优先级的进程占用CPU百分比

0.0 ni

空闲CPU百分比

99.7 id

等待I/O输入输出的进程占用百分比

0.0 wa

CPU处理硬件中断的时间

0.0 hi

CPU处理软件中断的时间

0.0 si

用于虚拟CPU情况

0.0 st

通常%id值可以反映一个系统CPU的闲忙状态。

第4行(Mem):表示目前系统物理内存的使用情况

物理内存总量

1016188 total

使用的物理内存总量

87228 used

空闲的内存总量

735664 free

用作内核缓存的内存量 

193296 buff/cache

第5行(Swap):表示目前系统虚拟内存的使用情况

交换区的总量

4063228 total

空闲交换区总量

4063228 free

已经使用的交换区总量

0 used

可用交换总量

766204 avail Mem

对于内存监控,在top里我们要时刻监控第5行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第6行是空行。

第7行是各进程的监控

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                    

PID

进程id

USER 

进程所有者

PR

进程优先级

NI 

nice值。负值表示高优先级,正值表示低优先级

VIRT 

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR

共享内存大小,单位kb

S

进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU

上次更新到现在的CPU时间占用百分比

%MEM 

进程使用的物理内存百分比

TIME+

进程使用的CPU时间总计,单位1/100秒

COMMAND

进程名称(命令名/命令行)

四 参考

CSDN

CSDN

CSDN


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

LAMP所需软件以及安装方法