排查Java高CPU占用原因

简介: 开篇 在简书看到一篇公众号讲如何排查CPU问题,想了想在日常工作中也偶尔遇到这样的问题,所以在网上搜了搜该方面的文章,特意拷贝了一篇文章作日后排查参考。

开篇

 在简书看到一篇公众号讲如何排查CPU问题,想了想在日常工作中也偶尔遇到这样的问题,所以在网上搜了搜该方面的文章,特意拷贝了一篇文章作日后排查参考。

 整体来说是按照三步走:

  • 1、top命令发现占用cpu最多的进程PID
  • 2、ps命令查看该进程下占用cpu最多的线程tid并转换为16进制;
  • 3、jstack -l pid 保存进程堆栈并通过16进制的tid查找对应的代码块。


步骤

  • 1、top命令发现某个进程占用了100%的CPU
img_53af1437eb4c8de75ef01830cc1101be.png


  • 2、通过ps命令,进一步确定哪个进程出了问题
img_bb26d04efb60b2876d50eafaaecbea1d.png


  • 3、再查看线程占用CPU的列表
ps -mp PID(进程号)  -o THREAD,tid,time

说明:
-m Show threads after processes
img_ca7c8d956438265aed3f310223663acd.png


  • 4、找到占用CPU最高的线程,查看TID,将其转换为16进制格式
printf "%x\n" TID


  • 5、而后查看堆栈信息
jstack PID |grep 16进制TID -A 60
img_63a52188bb87ceb6bb49f92483af60a3.png


参考

目录
相关文章
|
1月前
|
监控 Java 索引
cpu使用率过高和jvm old占用过高排查过程
cpu使用率过高和jvm old占用过高排查过程
37 2
|
3月前
|
SQL 网络协议 Java
Java开发者的必备技能:抓包工具排查问题
Java开发者的必备技能:抓包工具排查问题
|
25天前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
67 0
|
26天前
|
监控 网络协议 NoSQL
java线上排查OOM内存溢出
java线上排查OOM内存溢出
22 0
|
3月前
|
Java 测试技术 数据库
一次java.lang.NullPointerException的排查之旅
【1月更文挑战第6天】一次java.lang.NullPointerException的排查之旅
|
3月前
|
缓存 架构师 算法
Java内存溢出如何解决,Java oom排查方法,解决办法
在Java开发过程中,有效的内存管理是保证应用程序稳定性和性能的关键。不正确的内存使用可能导致内存泄露甚至是致命的OutOfMemoryError(OOM)。
|
3月前
|
缓存 架构师 算法
Java内存溢出如何解决,Java oom排查方法,10个定位解决办法
在Java开发过程中,有效的内存管理是保证应用程序稳定性和性能的关键。不正确的内存使用可能导致内存泄露甚至是致命的OutOfMemoryError(OOM)。
|
3月前
|
监控 Java Linux
疯狂飙高!怎么排查CPU导致系统反应缓慢的问题?
疯狂飙高!怎么排查CPU导致系统反应缓慢的问题?
|
4月前
|
安全 Unix Linux
Linux【问题记录 02】腾讯云 cron、sshd 进程CPU占用超95%(亡命徒 Outlaw 僵尸网络攻击)问题排查及处理步骤
Linux【问题记录 02】腾讯云 cron、sshd 进程CPU占用超95%(亡命徒 Outlaw 僵尸网络攻击)问题排查及处理步骤
57 0
|
4月前
|
弹性计算 Linux 数据安全/隐私保护
Linux【问题记录 01】阿里云CPU使用率 100% ECS 同时连接数峰值 25k+ 问题排查无果(附阿里云重新初始化云盘详细步骤)
Linux【问题记录 01】阿里云CPU使用率 100% ECS 同时连接数峰值 25k+ 问题排查无果(附阿里云重新初始化云盘详细步骤)
128 0