JVM调优的工具

2020-05-16  本文已影响0人  河神
工具 作用
jps 找到进程
jmap 查看内存
jstack 查看线程
jstat 性能分析

jps

是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。
参数
-q 只显示pid,不显示class名称,jar文件名和传递给main方法的参数
-m 输出传递给main方法的参数,在嵌入式jvm上可能是null
-l 输出应用程序main class的完整package名或者应用程序的jar文件完整路径名
-v 输出传递给JVM的参数
-V 隐藏输出传递给JVM的参数

jmap

参数 作用
jmap pid 查看进程的内存映像信息
jmap -heap pid 显示Java堆详细信息
jmap -histo:live pid 显示堆中对象的统计信息
jmap -clstats pid 打印类加载器信息
jmap -finalizerinfo pid 打印等待终结的对象信息
jmap -dump:format=b,file=heapdump.hprof pid 导出dump文件

1.1 jmap -heap pid 查看堆的详情

   MinHeapFreeRatio         = 0                
   MaxHeapFreeRatio         = 100         #GC后如果发现空闲堆内存占到整个预估堆内存的N%(百分比)  
   MaxHeapSize              = 20971520 (20.0MB)    # 堆最大空闲    jvm参数 -Xms20m
   NewSize                  = 10485760 (10.0MB)    # 年轻代空间    jvm参数 -Xmn10m
   MaxNewSize               = 10485760 (10.0MB)    # 年轻代最大空间
   OldSize                  = 10485760 (10.0MB)    # 老年代空间 =(等于)堆内存大小 -(减去)年轻代大小
   NewRatio                 = 2   
   SurvivorRatio            = 8   # 年轻代内存又被分成三部分 Eden 空间 80% 而From Survivor 空间 和 To Survivor空间 分别占用10%
   MetaspaceSize            = 21807104 (20.796875MB) # 设置元空间的最大值 jvm参数 -XX:MaxMetaspaceSize
   CompressedClassSpaceSize = 1073741824 (1024.0MB)  # 类指针压缩空间大小, 默认为1G
   MaxMetaspaceSize         = 17592186044415 MB    # 是分配给类元数据空间的最大值
   G1HeapRegionSize         = 0 (0.0MB) # G1区块的大小, 取值为1M至32M. 其取值是要根据最小Heap大小划分出2048个区块

jstat

参数 作用
jstat -class 19570 类加载统计
jstat -compiler 19570 编译统计
jstat -gc 19570 垃圾回收统计
jstat -gccapacity 19570 堆内存统计
jstat -gcnew 19570 新生代垃圾回收统计
jstat -gcnewcapacity 19570 新生代内存统计
jstat -gcold 19570 老年代垃圾回收统计
jstat -gcoldcapacity 19570 年代内存统计
jstat -gcmetacapacity 7172 元数据空间统计
jstat -gcutil 19570 垃圾回收统计
jstat -printcompilation 19570 JVM编译方法统计

-- https://www.cnblogs.com/sxdcgaq8080/p/11089841.html

参考:
https://www.jianshu.com/p/a4ad53179df3
https://segmentfault.com/a/1190000010648021
https://www.cnblogs.com/sxdcgaq8080/p/11089841.html

上一篇 下一篇

猜你喜欢

热点阅读