java问题定位汇总
~~持续更新
java应用CPU占用100%
1.根据top命令找到占用100%的进程
2.根据pid找到对应的java程序
ps aux | grep pid
3.查找线程列表中耗时最多的线程(tid)
ps -mp pid -o THREAD,tid,time
4.将线程id转换成十六进制
printf “%x\n” tid
5.打印线程的堆栈信息
jstack pid |grep tid -A 30
6.根据堆栈信息定位代码
Tomcat假死问题排查
1.查看连接数
netstat -natp | awk ‘{print $6}’ | sort | uniq -c | sort -n
2.查看gc
jstat -gcutil pid 1000 1000
3.查看线程堆栈信息
jstack PID > jstack.txt
检查文件中是否有BLOCKED状态