jvm GC调优项总结

作者最新博客地址:http://www.17mark.com

此不再维护。

此文章只限稍微了解JVM 内存GC机制的书友。

Eden 容量设置:

Eden GC触发值设置:

-XX:+SuivivorRatio:   Eden 区大小和 survivor 区大小的比例

-XX:+PretenureSizeThreshold:设置大对象直接进入老年代的阈值。当对象的大小超过这个值时,将直接在老年代分配。

-XX:MaxTenuringThreshold:设置对象进入老年代的年龄的最大值。每一次 Minor GC 后,对象年龄就加 1。任何大于这个年龄的对象,一定会进入老年代。 

-XX:+UseParNewGC: 在新生代使用并行收集器。 

-XX:+UseParallelOldGC: 老年代使用并行回收收集器。
 
-XX:ParallelGCThreads:设置用于垃圾回收的线程数。通常情况下可以和 CPU 数量相等。但在 CPU 数量比较多的情况下,设置相对较小的数值也是合理的。 

-XX:MaxGCPauseMills:设置最大垃圾收集停顿时间。它的值是一个大于 0 的整数。
 
-XX:GCTimeRatio:设置吞吐量大小,它的值是一个 0-100 之间的整数。假设 GCTimeRatio 的值为 n,那么系统将花费不超过 MaxGCPauseMills/(1+n) 的时间用于垃圾收集。 与MaxGCPauseMills相关。

-XX:+UseAdaptiveSizePolicy:打开自适应 GC 策略。在这种模式下,新生代的大小,eden 和 survivor 的比例、晋升老年代的对象年龄等参数会被自动调整,以达到在堆大小、吞吐量和停顿时间之间的平衡点。

-XX:+ParallelCMSThreads: 设定 CMS 的线程数量。 

-XX:+CMSInitiatingOccupancyFraction:设置 CMS 收集器在老年代空间被使用多少后触发,默认为 68%。
 
-XX:+UseFullGCsBeforeCompaction:设定进行多少次 CMS 垃圾回收后,进行一次内存压缩。
 
-XX:+CMSClassUnloadingEnabled: 允许对类元数据进行回收。
 
-XX:+CMSParallelRemarkEndable:启用并行重标记。 

-XX:CMSInitatingPermOccupancyFraction:当永久区占用率达到这一百分比后,启动 CMS 回收 (前提是-XX:+CMSClassUnloadingEnabled 激活了)。 

-XX:UseCMSInitatingOccupancyOnly:表示只在到达阈值的时候,才进行 CMS 回收。 

-XX:+CMSIncrementalMode:使用增量模式,比较适合单 CPU。

常用参数如下:


jvm GC调优项总结_第1张图片
image

积极迎接各种挑战,才会使自己更加强大。
此文章参考自:http://blog.csdn.net/antony9118/article/details/51375662

欢迎一起交流,学习。


你可能感兴趣的:(jvm GC调优项总结)