- N +

[ top命令详解]--性能分析工具

[ top命令详解]--性能分析工具原标题:[ top命令详解]--性能分析工具

导读:

top 简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows系统的任务管理器。top是一个动态显示过程,即可...

文章目录 [+]

top 简介

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

top 分析

[root@VM-10-58-57-231 ~]# top
top - 17:42:34 up 89 days,  1:35,  1 user,  load average: 3.48, 3.70, 3.56
Tasks: 137 total,   1 running, 136 sleeping,   0 stopped,   0 zombie
Cpu(s): 52.8%us, 40.6%sy,  0.0%ni,  6.1%id,  0.0%wa,  0.0%hi,  0.6%si,  0.0%st
Mem:   8061704k total,  7652068k used,   409636k free,    66488k buffers
Swap:  8388600k total,        0k used,  8388600k free,    93740k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                    
  3640 root      20   0 5963m 1.3g  17m S 192.5 17.4  16931:38 java                                                                                                                                       
317240 root      20   0 5940m 1.2g  17m S 119.3 16.2   5725:42 java                                                                                                                                       
  5756 root      20   0 5747m 1.9g  17m S 30.9 24.5   2934:03 java                                                                                                                                        
  5773 root      20   0 5757m 1.9g  17m S 30.6 24.3   2870:17 java                                                                                                                                        
 22621 root      20   0  237m  32m 2844 S  0.7  0.4 478:43.70 logstash-forwar                                                                                                                             
143866 root      20   0 15024 1328  984 R  0.3  0.0   0:00.01 top                                                                                                                                         
     1 root      20   0 19232 1040  768 S  0.0  0.0   0:00.61 init                                                                                                                                        
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                    
     3 root      RT   0     0    0    0 S  0.0  0.0   0:07.92 migration/0                                                                                                                                 
     4 root      20   0     0    0    0 S  0.0  0.0   6:25.13 ksoftirqd/0                                                                                                                                 
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                                                 
     6 root      RT   0     0    0    0 S  0.0  0.0   0:06.87 watchdog/0                                                                                                                                  
     7 root      RT   0     0    0    0 S  0.0  0.0   0:12.84 migration/1                                                                                                                                 
     8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1                                                                                                                                 
     9 root      20   0     0    0    0 S  0.0  0.0   0:36.03 ksoftirqd/1                                                                                                                                 
    10 root      RT   0     0    0    0 S  0.0  0.0   0:04.01 watchdog/1                                                                                                                                  
    11 root      RT   0     0    0    0 S  0.0  0.0   0:09.50 migration/2                                                                                                                                 
    12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/2                                                                                                                                 
    13 root      20   0     0    0    0 S  0.0  0.0   0:32.62 ksoftirqd/2                                                                                                                                 
    14 root      RT   0     0    0    0 S  0.0  0.0   0:04.02 watchdog/2                                                                                                                                  
    15 root      RT   0     0    0    0 S  0.0  0.0   0:10.12 migration/3                                                                                                                                 
    16 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/3                                                                                                                                 
    17 root      20   0     0    0    0 S  0.0  0.0   0:52.34 ksoftirqd/3                                                                                                                                 
    18 root      RT   0     0    0    0 S  0.0  0.0   0:04.12 watchdog/3                                                                                                                                  
    19 root      20   0     0    0    0 S  0.0  0.0   2:25.49 events/0                                                                                                                                    
    20 root      20   0     0    0    0 S  0.0  0.0   2:28.42 events/1                                                                                                                                    
    21 root      20   0     0    0    0 S  0.0  0.0   2:14.94 events/2                                                                                                                                    
    22 root      20   0     0    0    0 S  0.0  0.0   3:34.08 events/3                                                                                                                                    
    23 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup                                                                                                                                      
    24 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper                                                                                                                                     
    25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns                                                                                                                                       
    26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr                                                                                                                                   
    27 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                                                                                                                                          
    28 root      20   0     0    0    0 S  0.0  0.0   0:08.70 sync_supers                                                                                                                                 
    29 root      20   0     0    0    0 S  0.0  0.0   0:11.97 bdi-default                                                                                                                                 
    30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0                                                                                                                               
    31 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/1                                                                                                                               
    32 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/2

统计信息区

前五行是当前系统情况整体的统计信息下面我们看每一行信息的具体意义。

第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:


  17:42:34— 当前系统时间

up 70 days, 16:44 — 系统已经运行了891小时35分钟(在这期间系统没有重启过的吆!)

2 users — 当前有2个用户登录系统

load average: 3.48,3.70,3.56—load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行Tasks — 任务(进程),具体信息说明如下:

系统现在共有137个进程,其中处于运行中的有1个,136个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

  第三行,cpu状态信息,具体属性说明如下:

52.8%us — 用户空间占用CPU的百分比。

40.6% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

6.1% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.6% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si — 软中断(Software Interrupts)占用CPU的百分比

备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!

  第四行,内存状态,具体信息如下:

8061704k total,  7652068k used,   409636k free,    66488k buffers


8061704k total — 物理内存总量(32GB)

7652068k used — 使用中的内存总量(14GB)

409636k free — 空闲内存总量(18GB

66488k buffers — 缓存的内存量 (169M)

  第五行,swap交换分区信息,具体信息说明如下:

 8388600k total,        0k used,  8388600k free,    93740k cached

 total — 交换区总量(32GB)

 used — 使用的交换区总量(0K

 free — 空闲交换区总量(32GB)

 cached — 缓冲的交换区总量(3.6GB)

备注:

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:18537836k +169884k +3612636k = 22GB左右。

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

第六行,空行。

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

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 — 进程名称(命令名/命令行)



top 使用

多u多核的服务器中监控每个逻辑cpu状态:

   top命令后 按键盘健 "1"  :

top - 18:01:44 up 89 days,  1:54,  1 user,  load average: 3.57, 3.44, 3.44
Tasks: 139 total,   1 running, 137 sleeping,   1 stopped,   0 zombie
Cpu0  : 56.0%us, 16.1%sy,  0.0%ni, 23.5%id,  0.0%wa,  0.0%hi,  4.4%si,  0.0%st
Cpu1  : 44.9%us, 55.1%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  : 55.5%us, 44.5%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  : 59.0%us, 41.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8061704k total,  7513492k used,   548212k free,     4088k buffers
Swap:  8388600k total,        0k used,  8388600k free,    38996k cached

高亮显示当前运行进程:

敲击键盘“b”(打开/关闭加亮效果)。



默认进入top时,各进程是按照CPU的占用量来排序的,在下图中进程ID为28894的java进程排在第一(cpu占用142%),进程ID为574的java进程排在第二(cpu占用16%)。

敲击键盘“x”(打开/关闭排序列的加亮效果):


top交互命令

在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。

h 显示帮助画面,给出一些简短的命令总结说明

k 终止一个进程。

i 忽略闲置和僵死进程。这是一个开关式命令。

q 退出程序

r 重新安排一个进程的优先级别

S 切换到累计模式

s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s

f或者F 从当前显示中添加或者删除项目

o或者O 改变显示项目的顺序

l 切换显示平均负载和启动时间信息

m 切换显示内存信息

t 切换显示进程和CPU状态信息

c 切换显示命令名称和完整命令行

M 根据驻留内存大小进行排序

P 根据CPU使用百分比大小进行排序

T 根据时间/累计时间进行排序

           W 将当前设置写入~/.toprc文件中 


本文标题:[ top命令详解]--性能分析工具
本文链接:https://www.kyjszj.com/zyfx/149.html
作者授权:除特别说明外,本文由 开源技术之家 原创编译并授权 开源技术之家 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

返回列表
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

    评论列表 (暂无评论,共909人参与)参与讨论

    还没有评论,来说两句吧...