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,资源等待(线程池)
解决办法:逐个排查