java heap dump
- jps -ml 得到java进程号 pid
- jmap -dump:format=b,file=heap.dump [pid] 或者 jmap -histo pid > dump.log
- jhat heap.dump
- 访问http://localhost:7000
thread dump
- ps -ef | grep 进程名 | grep -v grep
- top -Hp pid得到线程id tid
- printf "%x\n" tid得到线程id的十六进制表示如54ee
- jstack pid | grep 54ee
- 根据stack信息找到有问题的类和方法
jstat
- jstat -gc pid 250 4
- S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
- EC、EU:Eden区容量和使用量
- OC、OU:年老代容量和使用量
- PC、PU:永久代容量和使用量
- YGC、YGT:年轻代GC次数和GC耗时
- FGC、FGCT:Full GC次数和Full GC耗时
- GCT:GC总耗时
- jstat -gccapacity pid
- jstat -gcutil pid
- jstat -gcnew pid
- jstat -gcnewcapacity pid
- jstat -gcold pid
- jstat -gcoldcapacity pid
- jstat -gcpermcapacity pid
- jstat -class pid
- jstat -compiler pid
- jstat -printcompilation pid