top-性能分析命令


top命令-性能分析命令
top命令是常用的性能分析命令,能够实时显示系统中各个进程的资源占用状况。也可以查看线程。top命令类似Windows系统的任务管理器工具。它对于所有正在运行的进行和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。下面主要介绍一下top命令。

执行top命令,可以看到这样的信息。都代表什么意思呢?

top - 20:39:10 up 5 min,  2 users,  load average: 0.04, 0.07, 0.04
Tasks: 122 total,   1 running, 121 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  2.2 sy,  0.0 ni, 96.8 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  1014608 total,   277420 free,   411804 used,   325384 buff/cache
KiB Swap:  4063228 total,  4063228 free,        0 used.   456548 avail Mem 


第一行为任务队列信息:top - 20:39:10 up 5 min, 2 users, load average: 0.04, 0.07, 0.04分别代表的含义

20:39:10:当前时间
up 5 min:当前系统运行的时间
2 users:当前系统有几个用户连接进来, 这个用户,可以是同一个user
load average:0.04, 0.07, 0.04 系统瓶颈负载值,分别表示系统过去1分钟、5分钟、15分钟系统的平均负载值
从load average: 0.04, 0.07, 0.04 ,如何知道我们现在系统的负载情况?

看第1个值是上升趋势,还是下降,变大说明我们现在系统负载正在上升,可能还会继续上升;
如果第1个值小于第2个值,表明现在系统负载正在下降,再过一段时间可能会恢复正常。类似的,如果第2个值小于第3个值,表明现在系统负载正在下降,反之系统负载正在上升。

注意:系统负载值,不等于cpu使用率值。系统的负载值,主要由两部分组成: cpu的使用率 + io使用率。系统负载高低,与cpu的数量有一定关系。

第二行为进程信息:Tasks: 122 total, 1 running, 121 sleeping, 0 stopped, 0 zombie

Tasks: 360 total:系统中的进程总数
1 running:正在运行的进程
359 sleeping:睡眠的进程
0 stopped:正在停止的进程
0 zombie:僵尸进程。如果不是0,需要检查僵尸进程
默认是显示Tasks进程数,如果要查看Threads线程数,通过按下H键,从进程切换为线程。Threads数字一般大于Tasks,因为一个线程可能有多个进程。

在这里插入图片描述

 

第三行信息为CPU信息:%Cpu(s): 0.8 us, 2.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st

us:user space 用户空间使用cpu的时间占比
sy:系统态在cpu的内核中进行计算消耗的时间占比
ni:nice 进程优先级改变占CPU百分比
id: idolt CPU空闲率
wa: wait IO 等待占用CPU百分比
si:Software Interrupter 软中断占用百分比
st: hypervisor 管理者程序占用CPU百分比
hi:Hardware Interrupt 硬中断占用百分比,中断会导致时间浪费,也会导致资源占用升高
cpu使用率高主要受 us sy ni hi si 影响。我们重点关注这几个参数。

id:空闲的CPU利用率,当id持续过低的时候,表示系统需要解决CPU资源问题。统计使用的是CPU需要用1-%id获取。或者us+sy+si。
wa:使用率过高的时候,我们需要考虑IO的性能是否有瓶颈,可以在使用iostat、sar等命令做进一步分析。

si :常见的软件中断一般都是和网络有关。从网卡到IP层的数据报文收发都是si处理的,长时间写日志也可能产生软件中断。
hi:使用率过高时,表示当前硬件中断占用很大的百分比。一般硬件中断我们可以分析文件/proc/interrupts、/proc/irq/pid/smp_affinity、服务irqbalance是否配置,以及CPU的频率设置,通过这些可以帮系统打散优化系统的硬件中断。

按下数字键1,可以看到cpu的数量(是核数,不是物理个数)。未展开时,看到的是所有CPU的一个总体的使用率

在这里插入图片描述

 
第四、五行信息为内存信息、交换分区swap信息

KiB Mem :  1881936 total,   808532 free,   468140 used,   605264 buff/cache
KiB Swap:  4063228 total,  4063228 free,       0 used.  1255740 avail Mem

1881936 total 物理内存的总量
808532 free 空闲的物理内存数量
468140 used 已经使用的物理内存适量
605264 buff/cache 作为缓冲缓存的内存数量
swap交换分区信息

4063228 total 交换分区的总大小
4063228 free 空闲交换分区的大小
0 used 已经使用的交换分区的大小
1255740 avail Mem 可用内存大小
按下大写E,可以切换单位。

# 切换
PiB Mem :      0.0 total,      0.0 free,      0.0 used,      0.0 buff/cache
PiB Swap:      0.0 total,      0.0 free,      0.0 used.      0.0 avail Mem 
# 切换
TiB Mem :      0.0 total,      0.0 free,      0.0 used,      0.0 buff/cache
TiB Swap:      0.0 total,      0.0 free,      0.0 used.      0.0 avail Mem 

buff/cache: 缓存
buffer:缓冲区,由磁盘虚拟出来的一个缓冲区,用于内存读取磁盘数据时,加快读取速度(并没有写)。
cache:缓存,存在CPU、内存中,缓存数据
swap:交换分区,也是由磁盘虚拟出来的,一般为内存的两倍大小;主要用来交换内存空间,对内存数据进行转移。

第六行进程信息: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

PID 进程id
USER 进程的归属用户
PR 优先级的级别
NI 优先级,负值表示高优先级,正值表示低优先级
VIRT 与内存相关,进程使用虚拟内存大小,默认是KB,VIRT=SWAP+RES
RES 与内存相关,进程使用的物理内存大小,默认是KB,RES=CODE+DATA(CODE:可执行代码占用的物理内存大小
DATA:可执行代码以外的部分)
SHR 与内存相关,共享内存大小,默认单位KB
S 进程的状态。S列下的S、P、T、Z分别代表
S sleep (睡眠进程)
R running(正在运行的进程)
T stoped(已经停止的进程)
Z zombie(僵尸进程,占用资源又不干活)
%CPU 进程占用的cpu率
%MEM 进程使用memory率
TIME进程使用cpu的时间
COMMAND 进程名称
VIRT、RES、SHR这三个都是进程的内存相关数据,按小写e可以切换单位(区分按键E,是切换上面两行Mem 和 Swap的单位)

在任务列表中

按下小写h,可以查看这些按键的使用帮助

在这里插入图片描述

 

按下大写F,可以进入如下界面,*号是已显示的列,没有*号是未显示的。

Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!
这一行提示了我们如何增加减少显示的列,比如我想增加PPID显示列,按UP/DOWN移动到PPID,然后按下空格space,PPID前会显示*,在按下space*消失。(根据提示的操作,我看好像有些系统不是这么操作的)

在这里插入图片描述

 

top默认是每隔3s刷新数据,可以根据需要设置间隔时间刷新,在top命令后,按下d键盘进入间隔刷新配置,输入间隔秒数即可。

在这里插入图片描述

 
默认显示的数据是没有保存的,当用户退出top交互界面后,下次登录又会重新加载,如果需要则输入W保存,界面的那一空白行会提示保存在哪里。

top命令实例练习
1、查看当前系统cpu使用率最高的5个进程:
按下n键,然后按下 5,回车

在这里插入图片描述

 

2、如果只想看某个进程下的线程资源使用情况:
top -H -p pid值

在这里插入图片描述

版权声明:本文为CSDN博主「lucky多多」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41948075/article/details/124894814

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值