记一次排查问题用到工具

  1. Arthas
  • 查CPU利用率高的5个线程

thread -n 5

  • 查看类对象的属性

watch org.springframework.util.MimeTypeUtils$ConcurrentLruCache get 'target' -x 2

  1. jmap
  • dump 堆内存快照

jmap -dump:live,format=b,file=[filename].dump [pid]

  • 查看堆内存中类的实例

jmap -histo:live [pid]|grep java.util.concurrent.ConcurrentLinkedQueue

  1. jstack
  • 查看执行线程调用栈
    3.1. top -Hp [pid] 查看进程内线程信息
    3.2. printf "%x " [threadId] 线程ID转为十六进制
    3.3 jstack [pid] |grep [threadId的十六进制] -A 10

  • 统计线程数

jstack -l [pid]| grep 'java.lang.Thread.State' | wc -l

  1. jvisualVM
原文地址:https://www.cnblogs.com/zendwang/p/jmv-tools.html