jvm调优

jps

输出JVM中运行的进程状态信息

1
2
3
4
-q 不输出类名、Jar名和传入main方法的参数
-m 输出传入main方法的参数
-l 输出main类或Jar的全限名
-v 输出传入JVM的参数

jps -mlv
找到java应用的pid

jstack

根据java应用pid ,查看进程中线程堆栈信息

jstack pid

top

找出该进程内最耗费CPU的线程

top -Hp pid

转为十六进制
printf "%x\n" 线程id

输出进程的堆栈信息,然后根据线程ID的十六进制值grep
jstack pid | grep 十六进制线程id

jmap

查看堆内存使用状况
jmap -heap pid

进程内存使用情况dump到文件中 结合MAT工具分析
jmap -dump:format=b,file=dumpFileName pid

jhat

jhat -port 9998 /tmp/dump.dat
localhost:9998 查看内存对象情况 (不如MAT直观)