JDK排查线程和内存问题
JDK自带工具排查应用线程和内存问题
- 查看栈信息
- ➤ lsof -i tcp:8081
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 34760 kris 443u IPv6 0x4487be0b2cca6d9b 0t0 TCP *:sunproxyadmin (LISTEN) - ➤ jstack 34760 > jstack1.txt
转至元数据结尾
Created and last modified by yushengxiong on 六月 29, 2018 转至元数据起始
1、应用响应慢乃至长时间不返回,可能是线程被阻塞了,没有多余的线程来处理新的请求,此时可以使用jstack来拉取线程栈
jstack pid > jstack01.txt
查看jstack01.txt,重点关注BLOCKED状态的线程
2、当遇到应用OOM报错,内存告警,莫名其妙的重启,一般是内存问题
-
jstat -gcutil [pid] 2000
-
查看gc日志(/data/log/tomcat/gc)
3)jmap -histo:live [pid]
4)jmap -dump:live, format=b,file=文件名 [pid]
5)将dump文件导出到本地使用jvisualvm来分析