GC优化

一、GC

  1. 目的:保证系统高吞吐,低延迟
  2. 方向:降低gc频率,减少stw时间
  3. 手段:垃圾收集器选择,内存分配占比,触发gc阈值调整

二、分析

  • 算法:

年轻代:复制

老年代:标记-整理、标记-清除(内存碎片)

  • 垃圾收集器:

serial/serialOld:单线程。复制/标记-清除

parallelScavenge/parallelOld(JDK8默认):多线程。复制/标记-清除

parallel/CMS:多线程。复制/标记-整理

G1(JDK9默认):分区。标记-整理

  • 现象
  1. 新生代gc后存活对象增多:若增大新生代空间,将导致minorGC停顿时间更长。

  2. 新生代gc后存活对象变化不大:考虑降低GC频率

  3. 新生代eden区gc后存活对象不多:可考虑降低新生代晋升老年代阈值,减少复制成本的发生

  4. 老年代gc后存活对象变化不大:考虑充分利用老年代空间,适当提高触发gc阈值。需注意新生代回收停顿时间会随着老年代空间占用率上升而延长。

  • 总结
  1. 若增大新生代空间,将可能导致延迟时间增长。若减少新生代空间,将可能导致gc频率增加。可考虑调整新生代晋升老年代阈值(默认15)。如-XX:MaxTenuringThreshold=15
  2. 新生代回收停顿时间随着老年代空间占用率上升而延长。若采用CMS,可考虑适当降低老年代触发gc的阈值。如-XX:CMSInitiatingOccupancyFraction=80

三、名词解释

  1. QPS:每台服务器每秒查询请求次数,衡量性能
  2. TPS:每秒事务。一次事务指客户端向服务器发送请求,并接收到服务器端的响应。
  3. RT:响应时间。一次事务的花费时间。一般指平均
  4. 并发数:系统能同时处理的请求数量,反应系统负载能力
  5. 吞吐量:系统承压能力。
  • QPS(TPS)= 并发数/平均响应时间

  • 并发数 = QPS*平均响应时间

  1. PV:即页面浏览量或点击量。衡量网站用户访问的网页数量

  2. UV:指通过互联网访问、浏览这个网页的自然人

  3. VV:用以统计所有访客1天内访问网站的次数。同一访客1天内可能有多次访问行为,访问次数累计

  • 独立UV是以浏览器cookie为依据的,只要cookie不清除,同一天00:00-24:00内,2个人用同一台电脑的同一个浏览器,用不同ID登陆知乎,对于统计工具来说(比如谷歌分析工具),都只算一个UV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值