上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页
摘要: 监控jvm进程状态 jstat jstat -gc pid {间隔时间} {次数} 监控gc情况 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 1024.0 1024.0 0.0 0.0 8192.0 4436.4 阅读全文
posted @ 2021-03-18 01:29 mushishi 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 把 java 堆内存拆分成多个大小相同的 Region, 逻辑上区分年轻代和老年代; G1的内存分配的过程和策略还是 垃圾回收的整个过程一样的,但是它的内存比例是动态的 特点:可以设置垃圾回收的预期停顿时间 -XX:MaxGCPauseMills 新生代gc如何优化? G1 的年轻代是动态的, -X 阅读全文
posted @ 2021-03-18 01:26 mushishi 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 老年代优化的基调 :避免对象过快进入老年代 进而思考 ⇒ 什么情况对象会进入老年代? ⇒ 什么情况对象会提前进入老年代? 参考 什么时候会触发老年代gc 和 minor gc前后的几种特殊情况 每次minor gc后,根据执行耗时 、qps、每次执行产生对象大小 来计算出 存活对象的总大小, 注意 阅读全文
posted @ 2021-03-18 01:24 mushishi 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 分析这几点 • qps多少? • 每秒占用多少内存? • 多长时间触发一次Minor GC? 60秒 • 一般Minor GC后有多少存活对象? 120M左右 • Survivor能放的下吗? survivor 500M • 会不会频繁因为Survivor放不下导致对象进入老年代? 不会 • 会不会 阅读全文
posted @ 2021-03-18 01:17 mushishi 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 频繁full gc会导致 1. 机器 cpu 负载过高 2. 频繁 full gc 告警 3. 系统无法请求处理或者过慢, 接口无关 全面性的 出现以上异常的时候,要第一时间反应过来可能是 full gc的问题 频繁full gc的常见原因 full gc 触发条件是 老年代空间不足, 所以追因的方 阅读全文
posted @ 2021-03-18 01:15 mushishi 阅读(7104) 评论(0) 推荐(2) 编辑
摘要: minor gc前空间担保失败,提前进行full gc minor gc后,老年代空闲空间放不下晋升的对象 cms 老年代空间占用超过 -XX:CMSInitiatingOccupancyFaction 比例 元数据区加载的类太多,满了 阅读全文
posted @ 2021-03-17 20:05 mushishi 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 几个阶段 初始标记: 标记 gc roots直接引用的对象 STW 并发标记: 对老年代所有对象进行追踪 重新标记:第二阶段过程中系统还在运行,可能产生新的垃圾对象,也可能标记的存活对象变成垃圾对象了, 需要 stop the world 重新标记“并发标记”阶段的对象; STW , 参考 user 阅读全文
posted @ 2021-03-17 17:55 mushishi 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 一个面试题: parnew + cms 如何保证只做 ygc,jvm参数要如何配置? 思路:要做到没有 full gc, 那么对象就不能晋升到老年代,也就是说要避免jvm进入老年代的内存分配策略: 需要避免大对象直接进入老年代,-XX:PretenureSizeThreshold ; 然后 surv 阅读全文
posted @ 2021-03-17 17:54 mushishi 阅读(202) 评论(0) 推荐(0) 编辑
摘要: ##一、背景 数据计算系统,日处理数据量在上亿的规模; 简单来说就是不停的从各种存储中读取大量数据在内存中进行计算处理,大致每分钟执行500次数据提取和计算任务 总共5台机器,那么每台机器每分钟大概负责100次数据提取和计算,每次提取 1万条数据,平均计算耗时10秒 二、GC过程分析 机器配置4C8 阅读全文
posted @ 2021-03-17 17:46 mushishi 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 为什么需要? 新生代采用的复制算法,留空一个 survivor 作为空间备份,当大量对象在 minor gc后仍然存活,survivor 无法放下,则会直接进入老年代, 需要老年代的空间保证能容纳得下这些对象。 ##如何担保? 空间担保比较的是 老年代最大的连续空闲空间 和 年轻代所有对象的内存大小 阅读全文
posted @ 2021-03-17 00:43 mushishi 阅读(346) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页