JVM 内存的黄金比例配置& GC(垃圾收集器)

JVM 4G内存的黄金比例配置:这个配置最经典,适合web应用和JAVA应用


-server
-Xms4096m
-Xmx4096m
-XX:NewSize=1536m
-XX:MaxNewSize=1536m
-XX:PermSize=64m
-XX:MaxPermSize=64m
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:MaxTenuringThreshold=5

备注
//XX:MaxTenuringThreshold:垃圾最大年龄取值为机器核数-1,可以适当调大 XX:PermSize 和 XX:MaxPermSize


JVM 6G内存的黄金比例配置:6G有点大,会直接导致fullgc时间变长 ,yongGC时间也会变长,但是不明显(单JVM不推荐6G配置)


-server
-Xms6144m
-Xmx6144m
-XX:NewSize=1536m
-XX:MaxNewSize=1536m
-XX:PermSize=288m
-XX:MaxPermSize=288m
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:MaxTenuringThreshold=15

备注
//XX:MaxTenuringThreshold:垃圾最大年龄取值为机器核数-1,活动对象太多可以适当调整新生代

[size=x-large][color=red]GC(垃圾收集器):[/color][/size]

Serial收集器(复制算法)

  新生代单线程收集器,标记和清理都是单线程,优点是简单高效。

Serial Old收集器(标记-整理算法)

  老年代单线程收集器,Serial收集器的老年代版本。

ParNew收集器(停止-复制算法) 

  新生代收集器,可以认为是Serial收集器的多线程版本,在多核CPU环境下有着比Serial更好的表现。

Parallel Scavenge收集器(停止-复制算法)

  并行收集器,追求高吞吐量,高效利用CPU。吞吐量一般为99%, 吞吐量= 用户线程时间/(用户线程时间+GC线程时间)。适合后台应用等对交互相应要求不高的场景。

Parallel Old收集器(停止-复制算法)

  Parallel Scavenge收集器的老年代版本,并行收集器,吞吐量优先

[size=medium][color=blue]CMS(Concurrent Mark Sweep)收集器(标记-清理算法)[/color][/size]

 [color=red] 高并发、低停顿,追求最短GC回收停顿时间,cpu占用比较高,响应时间快,停顿时间短,多核cpu 追求高响应时间的选择[/color]

你可能感兴趣的:(JVM 内存的黄金比例配置& GC(垃圾收集器))