记一次排查问题用到工具
- Arthas
- 查CPU利用率高的5个线程
thread -n 5
- 查看类对象的属性
watch org.springframework.util.MimeTypeUtils$ConcurrentLruCache get 'target' -x 2
- jmap
- dump 堆内存快照
jmap -dump:live,format=b,file=[filename].dump [pid]
- 查看堆内存中类的实例
jmap -histo:live [pid]|grep java.util.concurrent.ConcurrentLinkedQueue
- jstack
-
查看执行线程调用栈
3.1. top -Hp [pid] 查看进程内线程信息
3.2. printf "%x\n" [threadId] 线程ID转为十六进制
3.3 jstack [pid] |grep [threadId的十六进制] -A 10 -
统计线程数
jstack -l [pid]| grep 'java.lang.Thread.State' | wc -l
- jvisualVM