JVM调优工具的使用

java jdk命令,我们最熟悉的就是java、javac,其实还有很多牛逼的命令在调优JVM中使用,见下图:

 接下来,说说几个牛逼的命令

jps命令

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

命令行参数选项:

-q 不输出类名、Jar名和传入main方法的参数

-m 输出传入main方法的参数

-l 输出main类或Jar的全限名

-v 输出传入JVM的参数

最常用 jps -l

 jstat命令

显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据

类装载   jstat -class 1094

Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间

垃圾回收统计   jstat -gc pid

S0C : survivor0区的总容量
S1C : survivor1区的总容量
S0U : survivor0区已使用的容量
S1C : survivor1区已使用的容量
EC : Eden区的总容量
EU : Eden区已使用的容量
OC : Old区的总容量
OU : Old区已使用的容量
MC :方法去大小
MU :方法去已使用大小
YGC : 新生代垃圾回收次数
YGCT : 新生代垃圾回收时间
FGC : 老年代垃圾回收次数
FGCT : 老年代垃圾回收时间
GCT : 垃圾回收总消耗时间
jstat -gcutil pid  已使用空间占总空间的百分比

jstat -gccapacity pid   Java堆各区域使用到的最大、最小空间 

jmap命令

查看内存使用情况,使用参数:

dump : 生成堆转储快照
finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
heap : 显示Java堆详细信息
histo : 显示堆中对象的统计信息
permstat : to print permanent generation statistics
F : 当-dump没有响应时,强制生成dump快照

用jmap把进程内存使用情况dump到文件中,再用jhat分析查看

jmap -dump:format=b,file=/tmp/dump.dat pid
生成dump.dat文件
jmap -dump:format=b,file=/tmp/dump.dat pid

./jhat -port 9999 /tmp/dump.dat

然后浏览器访问 ip:9999,查看dump

猜你喜欢

转载自blog.csdn.net/feikillyou/article/details/114014138