jstack的使用

一、jstack 命令参数

jstack的使用_第1张图片

二、jstack解决问题

1、死循环导致cpu飙高

死循环的例子:https://blog.csdn.net/goldenfish1919/article/details/8755378

步骤:查找进程-》查找线程-》分析threadDump日志-》找出问题代码

a、查看cpu高的java进程

     top

b、生成进程下所有线程的栈日志

     jstack 1721 > 1712.txt

c、查看进程下哪些线程占用了高的cpu

    top -p 1712 -H

d、将十进制pid转换为十六进制的pid

printf  "%x" 8247

2037

2、死锁问题定位

jstack的使用_第2张图片

 

3、thread dump日志分析

jstack:
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstack.html
java线程的状态
https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr034.html
java线程状态转化:
https://mp.weixin.qq.com/s/GsxeFM7QWuR--Kbpb7At2w
https://blog.csdn.net/mynamepg/article/details/81630487
死循环导致CPU负载高
https://blog.csdn.net/goldenfish1919/article/details/8755378
正则表达式导致死循环:
https://blog.csdn.net/goldenfish1919/article/details/49123787

 

 

你可能感兴趣的:(Java性能监控与调优)