JVM调试的常用命令

java性能调优的主要几个工具

通过jstack打印堆栈信息,得知线程的使用情况
通过jstat打印堆中gc以及对象的情况
通过jmap详细分析堆中内存的个数大小,必要时可以dump出来结合jhat查看

jstack

打印JAVA的堆栈信息

1
2

jstack <pid>

jstat

统计gc、JVM的情况

1
2
3
4

统计gc的情况
jstat -gcutil <pid> 2000 30
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT

jmap

统计jvm的内存中类的使用情况

1
2
3
4
5
6
7
8

按数量排序
jmap -histo:live <pid>|grep xxxx|sort -k 2 -g -r|head

按大小排序
jmap -histo:live <pid>|grep xxxx|sort -k 3 -g -r|head

`

配合jhat使用

1
2
3

jmap -dump:live,file=xxx.log pid
jhat xxx.log