亿级电商网站JVM调优案例

 

 

 每日用户点击量上亿次,用户平均点击20-30次,日活用户500万,最终付费下单用户10%,日均50万单,如果不做促销活动,这50万单大概在3到4个小时内完成,每秒平均35单左右,这个可以接受。

但在促销场景下,如果每秒1000单,用3台服务器做负载均衡,每台服务器每秒300单,每台服务器上每秒产生的对象(1KB的订单对象以及关联的对象及查询业务的对象)大概为60M。假设JVM的参数设置为堆大小为3G,年轻代占3分之一为1G,其中eden区占800M,S0和S1占100M。这种情况下,大概14秒左右eden区被占满,会触发minaGC,假设有1秒钟的对象未被归为垃圾对象(minaJC触发jwc,那1秒钟的用户线程被暂停,有60M对象产生但未被标记为垃圾对象)大小为60M,根据对象动态年龄判断[当前放对象的Survivor,一批对象的总大小大于这块Survivor内存的50%,那么大于这批对象年龄的对象,就可以直接进入老年代了],此时s0,s1大小为100M,其一半小鱼60M,因此这批对象会直接进入老年代。而老年代大小为2G,大概三四分钟会触发FullGC。这进入老年代的这批对象,在FullGC时会被回收到。——问题就是三四分钟的FullGC很频繁,二期进入老年代的对象属于朝生夕死。因此需要调优。

调优策略:把年轻代大小设为2G,eden区为1.6G,s0,s1设为200M。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值