查看初始的JVM内存的各参数的值
jcmd pid VM.flags
jinfo -flags pid
jmap -heap pid
查看jvm内存使用情况
jstat -gcutil pid
查看java 的进程
jps -l
各参数对应的含义:
-XX:CICompilerCount=2
编译时的编译器线程数。server版的JVM默认设置为2,client版本默认设置为1。如果tiered编译开启,则会 伸缩到核数个线程。
-XX:InitialHeapSize=16777216
设置初始堆内存大小,需要设置为0或者1024的倍数,设置为0说明初始堆大小等于年轻代加年老代的大小。
-XX:MaxHeapSize=33554432
设置最大堆大小,这个值需要大于2MB,且是1024的整数倍。等价于-Xmx
-XX:MaxNewSize=16777216
设置最大的年轻代的堆大小。默认自动检测
-XX:MinHeapDeltaBytes=196608
-XX:NewRatio=1
设置年轻代和年老代的比例,默认是2。
-XX:NewSize=8388608
设置初始的年轻代的大小。年轻代是分配新对象的地方,是 GC经常发生的地方。设置太低,会频繁minor GC,设置太高的话就只会发生Full GC了。Oracle推荐设置为整体内存的一半或者1/4。该参数等价于-Xmn。
-XX:OldSize=8388608
-XX:SurvivorRatio=8
eden区和survivor区的比例。默认是8。
-XX:+UseCompressedClassPointers
-XX:+UseCompressedOops
禁止使用压缩命令来压缩指针引用。压缩指针是默认开启的,如果使用压缩命令压缩指针,可以在JVM内存小于32G时做到内存压缩,即在64位机器上做到内存指针对齐只占用32位而不是64位。这样对于小于32G的JVM有非常高的性能提升。该参数只在64位JVM有效(+开启 - 关闭)
-XX:-UseGCOverheadLimit
设置一种策略用来设置一个时间比率来限制在OOM之前的GC时间。默认是开启的,并行GC时如果有多于98%以上的时间用来gc就会抛出OOM。当堆空间较小时这个参数有助于保护应用程序不至于长时间的停顿没有进展
-XX:+UseSerialGC
支持使用串行收集器。默认不开启。