温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux下如何排查占用CPU很高的Java程序

发布时间:2022-01-27 17:13:21 来源:亿速云 阅读:202 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“Linux下如何排查占用CPU很高的Java程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何排查占用CPU很高的Java程序”这篇文章吧。

jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。

Linux下如何排查占用CPU很高的Java程序

故意设置了一个CPU占用很高的场景:

Linux下如何排查占用CPU很高的Java程序

排查问题,步骤:

\1. ps -mp 【替换为进程ID PID】 -o THREAD,tid,time

Linux下如何排查占用CPU很高的Java程序

发现线程6322、6323占用CPU很高,时间也很长。

\2. printf “%x” 【线程ID TID】

Linux下如何排查占用CPU很高的Java程序

把TID转换为16进制。

\3. jstack 【进程ID PID】 | grep 【线程ID十六进制】 -A 10 -B 10

Linux下如何排查占用CPU很高的Java程序

利用jstack工具,查看前后10行,发现问题所在!

代码中故意设置:

Linux下如何排查占用CPU很高的Java程序

\4. 重复2、3,查看另一个线程。

–—

附录:要访问自己的Virtual Box,网络设置要调整为:

Linux下如何排查占用CPU很高的Java程序

以上是“Linux下如何排查占用CPU很高的Java程序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI