Jstack命令使用
- 使用top命令查看cpu占用比较高的进程pid
- ps H -eo pid,tid,%cpu|grep 71 (71为进程数pid,tid为线程数)
此命令答应 进程数为71 下所有的线程数,看哪个线程数占用的cpu较高
- Jstack中线程数记录的是16进制,需要将步骤2中耗cpu高的线程数转化成16进制,可以使用命令:printf "%x\n" 230
- Jstack pid|grep tid -A 50 查找
- 可以使用jstack 71 > xxxx.log 将jstack信息保存起来,方便日志查看
参考视频:
CPU占用率过高?用jstack诊断快速解决,JVM操作你学会了么?_哔哩哔哩_bilibili
其他:
jps 命令查看本机的java进程
jstack只存在于jdk中,不存在jre中
jstack可用于发现死锁
实际测试过程中