jstack的使用

2022-03-05  本文已影响0人  西谷haul

参考来源

有些时候我们需要查看jvm的线程执行情况,如:发现服务器的CPU的负载突然增高了,出现了死锁,死循环,我们该如何分析呢?这个时候就要借助jstack命令了,jstack的作用就是将正在运行的jvm的线程进行快照,并且打印出来

jstack <pid>
jstack 2214

一、jstack 命令参数

image

二、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、死锁问题定位

image
上一篇下一篇

猜你喜欢

热点阅读