top命令详解

179 篇文章 30 订阅

一 点睛

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% 时,就应该分析排查负载高的问题了。

平均负载理解参考:https://blog.csdn.net/mister_zwx/article/details/86647300

第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

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

四 参考

https://blog.csdn.net/xiatianba/article/details/84691594

https://blog.csdn.net/csdn066/article/details/77171018

https://blog.csdn.net/xiaoliuliu2050/article/details/81910810

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值