java问题定位汇总

~~持续更新

java应用CPU占用100%

1.根据top命令找到占用100%的进程
java问题定位汇总

2.根据pid找到对应的java程序
ps aux | grep pid

3.查找线程列表中耗时最多的线程(tid)
ps -mp pid -o THREAD,tid,time
java问题定位汇总

4.将线程id转换成十六进制
printf “%x\n” tid
java问题定位汇总

5.打印线程的堆栈信息
jstack pid |grep tid -A 30
java问题定位汇总

6.根据堆栈信息定位代码

Tomcat假死问题排查

1.查看连接数
netstat -natp | awk ‘{print $6}’ | sort | uniq -c | sort -n

2.查看gc
jstat -gcutil pid 1000 1000
java问题定位汇总
3.查看线程堆栈信息
jstack PID > jstack.txt
检查文件中是否有BLOCKED状态