top 命令解析

文章详细解读了系统负载、CPU使用率的各个组成部分,如用户态(us)、系统态(sys)、空闲(idle)等,并指出高CPU使用可能是由于上下文切换频繁,尤其是进程或线程切换。当sy+si高时,可能是内存或网络IO问题;而us高则可能涉及密集型计算或资源等待。解决方案包括优化程序、增加CPU资源或检查内存和IO瓶颈。
摘要由CSDN通过智能技术生成

top - 19:10:45 up 361 days, 2:44, 0 users, load average: 4.57, 3.63, 3.14

Tasks: 6 total, 1 running, 5 sleeping, 0 stopped, 0 zombie

%Cpu(s): 3.3 us, 1.0 sy, 0.0 ni, 95.7 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

MiB Mem : 385380.3 total, 9583.7 free, 137207.5 used, 238589.1 buff/cache

MiB Swap: 0.0 total, 0.0 free, 0.0 used. 247032.3 avail Mem

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

52 root 20 0 34.1g 2.3g 19688 S 2.3 0.6 4:54.69 java

1413 root 20 0 21340 2352 1660 R 0.3 0.0 0:00.02 top

1 root 20 0 16744 1732 1456 S 0.0 0.0 0:00.06 start.sh

6 root 20 0 13528 4080 3140 S 0.0 0.0 0:00.00 sshd

990 root 20 0 15348 652 564 S 0.0 0.0 0:00.23 tail

1392 root 20 0 17004 2352 1768 S 0.0 0.0 0:00.01 bash

1:load aaverage 系统负载=cpu负载+io负载。其中io负载又包含disk负载+网络负载+外设负载

2:cpu的使用分繁忙和空闲

繁忙:us+sy+st+ni+hi+si

空闲:idel +wa

注cpu上下文切换可能回导致cpu使用率比较高

上下文切换类型:进程上下文切换,线程上下文切换,中断上下文切换。

进程上下文切换:同一个进程之间切换,不同进程之间切换都需要报错资源,打开新的资源,---消耗实际,也要小号存储空间,如果频率很高,消耗资源比较多,次数多了,导致时间消耗比较高,cpu使用率也会比较高。

线程上下文切换:

同一个进程中,线程切换

不同进程中,线程切换

进程:资源的基本单位

线程:调度的基本单位。

如果sy态cpu使用率高则排查cpu上下文切换:

如果非资源上下文切换多,说明cpu不够用,进程时间片段,被迫切换

如果资源上下文切换多,说明计算用的资源不够用,可能存在IO 内存瓶颈。

如果si软中断高====cpu抢资源,资源不够用排查IO问题

sys高+si高====推导出》》》内存 或是网络IO问题

解决办法:排查内存和io

sys高+si不高====推导出》》cpu瓶颈

解决办法:加cpu.

如果us用户态高====用户程序计算

密集型计算,内存FGC,资源等待(线程池)

解决办法:逐个排查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值