jstack排查CPU标高

前言

由于日常开发过程中一些线程池的不规范使用及不能正常评估CPU计算密集型资源耗费或不正确的处理方式或过度的 I/O 操作可能会导致线程忙碌地等待 I/O 完成,从而影响 CPU 使用率,以及错误的线程使用便会出现CPU标高的问题

问题排查与定位

top命令查看占用CPU资源最高的进程

top

执行结果

top - 10:05:08 up 297 days, 19:11,  0 users,  load average: 15.55, 18.55, 17.94
Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
%Cpu(s): 11.6 us,  2.8 sy,  0.0 ni, 84.9 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem : 15128348+total, 98081894+free, 36106867+used, 17094715+buff/cache
KiB Swap:        0 total,        0 free,        0 used. 11453130+avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                   
    29 tomcat    20   0   18.6g   3.0g  15152 S 131.6  0.2   3439:15 java                                                                                                                                      
     1 tomcat    20   0   16124   2732   1376 S   0.0  0.0   0:00.16 init.sh                                                                                                                                   
 29056 tomcat    20   0   16012   2608   1280 S   0.0  0.0   0:00.05 sh                                                                                                                                        
 29062 tomcat    20   0   16012   1756    420 S   0.0  0.0   0:00.01 sh                                                                                                                                        
 29064 tomcat    20   0   13972    940    660 S   0.0  0.0   0:00.01 script                                                                                                                                    
 29072 tomcat    20   0   13976    696    412 S   0.0  0.0   0:00.01 script                                                                                                                                    
 29074 tomcat    20   0   16264   3152   1632 S   0.0  0.0   0:00.26 bash                                                                                                                                      
 47800 tomcat    20   0   16012   2608   1280 S   0.0  0.0   0:00.05 sh                                                                                                                                        
 47806 tomcat    20   0   16012   1752    416 S   0.0  0.0   0:00.01 sh    

由执行top结果可以查看得出 PID:29进程占用CPU资源最高,对29进程继续详细分析

查看最高负载进程下的高负载线程

top -Hp PID

执行结果

top - 10:09:20 up 297 days, 19:15,  0 users,  load average: 13.05, 15.62, 16.90
Threads: 232

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值