方案一:
1、 查询cpu飘高的进程
top
2、查询cpu飘高的进程的线程
top -H -p [进程id]
3、讲线程ID转换为16进制(字母要小写)
printf "%x" 281419
4、执行查找
jstack [进程id] |grep -A 10 [线程id的16进制]”
eg:
jstack 281419 |grep -A 10 44b4b
281419
===============
方案二、
4、java应用CPU过高排查思路:
(1)确认CPU过高:
#top (如果有多个java进程,用“#ps aux|grep java ”确认到底哪个应用的)
(2)查看java进程中CPU较高的线程号
#top -p202 -H (202 是上面得到的进程号)
得到CPU最高的线程号1300
(3)查询堆栈
#jstack 202 > stack.log (202 是上面得到的进程号)
(4)确认java代码类
#vim stack.log
搜索其中的关键字“线程号”。如果需要十六进制编码,可使用“printf "%x" 1300”。
1、 查询cpu飘高的进程
top
2、查询cpu飘高的进程的线程
top -H -p [进程id]
3、讲线程ID转换为16进制(字母要小写)
printf "%x" 281419
4、执行查找
jstack [进程id] |grep -A 10 [线程id的16进制]”
eg:
jstack 281419 |grep -A 10 44b4b
281419
===============
方案二、
4、java应用CPU过高排查思路:
(1)确认CPU过高:
#top (如果有多个java进程,用“#ps aux|grep java ”确认到底哪个应用的)
(2)查看java进程中CPU较高的线程号
#top -p202 -H (202 是上面得到的进程号)
得到CPU最高的线程号1300
(3)查询堆栈
#jstack 202 > stack.log (202 是上面得到的进程号)
(4)确认java代码类
#vim stack.log
搜索其中的关键字“线程号”。如果需要十六进制编码,可使用“printf "%x" 1300”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律