这篇文章主要为大家展示了“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程序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!