Linux下如何排查占用CPU很高的Java程序
这篇文章主要为大家展示了“Linux下如何排查占用CPU很高的Java程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何排查占用CPU很高的Java程序”这篇文章吧。
jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
故意设置了一个CPU占用很高的场景:
排查问题,步骤:
\1. ps -mp 【替换为进程ID PID】 -o THREAD,tid,time
发现线程6322、6323占用CPU很高,时间也很长。
\2. printf “%x” 【线程ID TID】
把TID转换为16进制。
\3. jstack 【进程ID PID】 | grep 【线程ID十六进制】 -A 10 -B 10
利用jstack工具,查看前后10行,发现问题所在!
代码中故意设置:
\4. 重复2、3,查看另一个线程。
–—
附录:要访问自己的Virtual Box,网络设置要调整为:
以上是“Linux下如何排查占用CPU很高的Java程序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341