JVM调优 -- CMS模式

JVM调优 – CMS模式

配置

  • JAVA_OPTS中添加如下配置
-XX:NewRatio=1 
-XX:+UseConcMarkSweepGC
-XX:+UseCMSCompactAtFullCollection 
-XX:CMSInitiatingOccupancyFraction=80 
-XX:+CMSParallelRemarkEnabled
-XX:SoftRefLRUPolicyMSPerMB=0

参数说明

-XX:NewRatio=1

设置年老代为并发收集

  • 并发收集适用于响应优先的服务器,保证系统的响应时间,减少垃圾收集时的停顿时间
  • JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值
    该参数可能会导致-XX:NewRatio的配置失效
-XX:+UseCMSCompactAtFullCollection

打开对年老代的压缩

  • 由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。
  • 该参数是打开对年老代的压缩。可能会影响性能,但是可以消除碎片。
    • 辅助参数:
      • -XX:CMSFullGCsBeforeCompaction=5
      • 此值设置运行多少次GC以后对内存空间进行压缩、整理。
-XX:CMSInitiatingOccupancyFraction=80

CMS回收阀值

  • 该参数值是指设定CMS在对内存占用率达到80%的时候开始GC(因为CMS会有浮动垃圾,所以一般都较早启动GC);
    • 辅助参数:
      • -XX:+UseCMSInitiatingOccupancyOnly
      • 这两个设置一般配合使用,一般用于“降低CMS GC频率或者增加频率、减少GC时长”的需求
-XX:+CMSParallelRemarkEnabled

降低标记停顿

  • CMS使用的是两次短暂停的标记整理算法,它的收集周期是:
  • 初始标记(CMS-initial-mark)
  • 并发标记(CMS-concurrent-mark)
  • 重新标记(CMS-remark)
  • 并发清除(CMS-concurrent-sweep)
  • 并发重设状态等待下次CMS的触发(CMS-concurrent-reset)
  • 其中的1,3两个步骤需要暂停所有的应用程序线程的
  • 该参数是用来减少第二次暂停的时间配置
-XX:SoftRefLRUPolicyMSPerMB=0

每兆堆空闲空间中SoftReference的存活时间

  • 引申:
    • 除了强引用外,Java还引入了SoftReference,WeakReference,PhantomReference,FinalReference
    • Java额外引入这个四种类型引用主要目的是在jvm 在gc时,按照引用类型的不同,在回收时采用不同的逻辑。
    • 这几种类型的引用主要在jvm内存缓存、资源释放、对象可达性事件处理等场景会用到。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值