前言
由于日常开发过程中一些线程池的不规范使用及不能正常评估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 MemPID 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

最低0.47元/天 解锁文章
4072

被折叠的 条评论
为什么被折叠?



