jvm参数

参数

说明

-Xms

通过这个选项可以要求系统为堆内存池分配内存空间的最小值。通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值(-Xms)与最大堆内存相同,以降低垃圾回收的频度

-Xmx

xms参数。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmn

此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-Xnoclassgc

这个选项用来取消系统对特定类的垃圾回收。它可以防止当这个类的所有引用丢失之后,这个类仍被引用时不会再一次被重新装载,因此这个选项将增大系统堆内存的空间

-Xss

设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。

 

XX参数

 

参数

详细

-XX:NewSize

在通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值-XX:NewSize是最大堆内存(maximum heap size)的四分之一。增加这个选项值的大小是为了增大较大数量的短生命周期对象

增加java新对象生产堆内存相当于增加了处理器的数目。并且可以并行地分配内存,但是请注意内存的垃圾回收却是不可以并行处理的

-XX:MaxNewSize

其功用与上面的设置新对象生产堆内存-XX:NewSize相同

-XX:SurvivorRatio

空间(Eden/survivor)的大小的比例。设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

-XX:NewRatio

设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

-XX:MaxPermSize

设置持久代大小

-XX:MaxTenuringThreshold

设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

 

 

-XX:+UseSerialGC

设置串行收集器

-XX:+UseParallelGC

设置并行收集器

-XX:+UseParalledlOldGC

设置并行年老代收集器

-XX:+UseConcMarkSweepGC

设置并发收集器

-XX:ParallelGCThreads

设置并行收集器收集时使用的CPU数。并行收集线程数。

-XX:MaxGCPauseMillis

设置并行收集最大暂停时间

-XX:GCTimeRatio

设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

并发收集器设置

-XX:+CMSIncrementalMode

设置为增量模式。适用于单CPU情况

-XX:+UseCMSCompactAtFullCollection

使用并发收集器时,设置在FULL GC的时候, 对年老代的压缩;CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。可能会影响性能,但是可以消除碎片 

-XX:CMSFullGCsBeforeCompaction

上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理。

 -XX:CMSInitiatingOccupancyFraction

预留足够的空间给young gc,防止从young gc 过来一个较大的内存块,而年老代无足够预留空间,无法提供内存快用于回收后的分配,引起强制的full gc,造成较长时间的线程中断 

 

调试辅助信息打印

-XX:+PrintGC
-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamp
-XX:+PrintGCApplicationStoppedTime
-XX:PrintHeapAtGC
-Xloggc:filename:
-XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpBeforeFullGC
-XX:HeapDumpPath
-XX:+TraceClassLoading 
-XX:+TraceClassUnloading
-Xprof
-Xrunhprof

https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs

http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

原文地址:https://www.cnblogs.com/beanchoc/p/2511421.html