命令行:
第一步,top 先看看是哪个进程 找到 cpu占用最高的,如果是 java 然后用,
第二步:jstack 进程 id 得到当前进程下,所有运行的线程,然后找到占用最高的线程,
jstack <pid> > stack.log
//注意:
- jstack需要到java bin的目录下执行
- jstack需要使用与运行java进程的用户一致,才能执行
第三步:通过进程 id 得到它的子线程 id
top -p <pid> -H
第三步:然后把线程 id 转成16进制字符串,
printf "%x" <thread_id>
第四步:stack.log 查看线程 id (16 进制字符)
less stack.log
死锁信息在 stack.log 最下面
PS:
1、查看java安装目录
echo $JAVA_HOME
通过`top`命令找出CPU占用高的Java进程,再使用`jstack`获取进程的线程详细信息,将线程ID转换为16进制并在stack.log中查找死锁线索,死锁信息通常位于文件底部。确保使用与Java进程相同用户执行`jstack`。
1779





