图解CMS&G2(下)

简介: 图解CMS&G2(下)

image.png

image.png


按照回收收益比排序 收益比更高的优先回收
每个区的回收时间是由这个区的存活对象复制到空白区域的时间来决定的

回收时间


image.png

停顿时间设置的太短有什么影响?

默认是200毫秒 如果设置为10毫秒
停顿时间设置过短 一次清理的垃圾比较少
垃圾就会越积越多 就会触发FGC
停顿时间就会失效

G1垃圾收集分类

  • minor gc

image.png


在触发minor gc之前会计算下当前的eden区回收时间是否会超过最大停顿时间 
如果接近就会触发
如果不接近 就不会触发 继续加eden区域空间
eden区空间最多不会超过设置的值 默认是60%
  • MixedGC


image.png


image.png

image.png



G1参数设置


eden存活对象超过85%(该参数可以设置) 回收意义不大

一次回收过程中默认做8次筛选回收

筛选回收阶段 为了提升用户的体验 可以设置一次gc过程筛选回收的次数
假设有80%的垃圾需要回收
默认停顿时间200ms
g1不会一次性回收完
回收一次 回收线程暂停下 让应用线程执行
然后回收线程再执行
该过程是串行的 不是并发的
如果垃圾比较多的情况下 有必要把这个参数设置的大些
这样stw的时间就会短一些 用户体验会好一些

image.png


最大停顿时间设置

根据一次gc之后 有多少个对象可以存活 避免存活对象太多、太快进入老年代


垃圾收集器选择

image.png

如果内存大小在4-8G JDK1.8用CMS效率是比G1要好
G1在jdk1.8版本算法性能不是最优

G1使用场景

比如Kafaka 单机可以处理 上百万/s 并发
底层也是基于JVM
或者秒杀系统 一定得是大内存去部署 且使用G1垃圾收集器
Kafka线上推荐使用64G内存

image.png


对于Kafka来说 大部分对象在Minor GC都会被回收

Minor GC效率是否高?

对于几十G年轻代的Minor GC不一定比老年代的GC快
虽然老年代的收集算法比年轻代还要慢些
对于这种场景来说 不用G1,STW时间会很长

如果用G1则可以设置停顿时间 比如50毫秒 那每次可以回收几个G 边接受请求 边收集 用户体验会好很多 不会导致客户端发送消息超时的情况

相关文章
|
4月前
|
算法 架构师 Java
深入理解HotSpot源码:CMS、C1与ZGC的区别
【10月更文挑战第8天】作为一名资深架构师,深入理解HotSpot虚拟机中的垃圾收集器CMS、编译器C1以及新一代垃圾收集器ZGC,对于构建高效、可靠的Java应用至关重要。本文将通过背景介绍、业务场景分析、功能点阐述及Java源码示例,带您深入探讨这三者的区别。
85 2
|
4月前
|
域名解析 SQL 前端开发
如何使用CMS来搭建一个网站?
在如今的时代,拥有一个网站成为每一家企业展现形象、拓展业务、传递信息的重要途径。网站在互联网上吸引潜在客户、合作伙伴。对于大多数希望自行建设网站的企业来说,内容管理系统(CMS)成为了理想选择。
202 8
|
2月前
|
算法 网络协议 Java
【JVM】——GC垃圾回收机制(图解通俗易懂)
GC垃圾回收,标识出垃圾(计数机制、可达性分析)内存释放机制(标记清除、复制算法、标记整理、分代回收)
|
3月前
|
自然语言处理 安全 前端开发
什么是CMS?CMS适合搭建什么网站?
CMS(内容管理系统)用于快速搭建、管理和发布网站内容。它支持自定义板块,降低建站门槛。CMS分为独立CMS和SaaS CMS两种类型,主要功能包括角色分配、SEO优化、多语言支持等。建站流程包括确定需求、选择系统、购买域名和主机、安装系统、选择模板、扩展栏目、添加内容、上线和维护。PageAdmin CMS是一款优秀的建站系统,推荐免费试用。
298 1
|
4月前
|
域名解析 前端开发 搜索推荐
什么叫CMS?如何使用CMS来制作网站?
PageAdmin CMS,是一套开发了17年,官网还持续在更新和维护的网站内容管理系统,对于领开发的用户来说,对于有网站优化的用户来说,PageAdmin CMS就能帮助我们快速搭建属于自己的个性网站或企业网站。
304 5
|
4月前
|
Java
JVM进阶调优系列(5)CMS回收器通俗演义一文讲透FullGC
本文介绍了JVM中CMS垃圾回收器对Full GC的优化,包括Stop the world的影响、Full GC触发条件、GC过程的四个阶段(初始标记、并发标记、重新标记、并发清理)及并发清理期间的Concurrent mode failure处理,并简述了GC roots的概念及其在GC中的作用。
|
6月前
|
消息中间件 算法 前端开发
京东面试:说说CMS工作原理?
京东面试:说说CMS工作原理?
64 2
|
8月前
|
监控 算法 Java
JVM调优-简介(一)
JVM调优-简介(一)
57 0
|
9月前
|
存储 算法 Java
深入浅出JVM(十七)之并发垃圾收集器CMS
深入浅出JVM(十七)之并发垃圾收集器CMS