JVM GC 日志中 G1 收集器的 Mixed GC 怎么看

星婷吖_7173

星婷吖_7173

2026-09-16

355人浏览

原创

mixed gc正常需并发标记周期完整完成,若缺失initial-mark等阶段或出现“concurrent cycle was cancelled”则存在退化风险;需结合eden清零、survivor变化、老年代回收效果、real停顿时间及子阶段耗时、异常提示词综合判断。

jvm gc 日志中 g1 收集器的 mixed gc 怎么看

看到 G1 的 Mixed GC 日志,关键不是认出“mixed”这个词,而是快速判断它是否正常、有没有隐藏风险。

看日志类型和触发原因
日志里明确带 (mixed) 就是 Mixed GC。但它不是独立发生的,背后一定有并发标记周期完成的支撑。如果日志中紧挨着出现 initial-markconcurrent-markremarkcleanup,再跟上 (mixed),说明流程完整;若 mixed 突然频繁出现但前面没看到完整的标记阶段,可能是并发标记被取消(日志里会有 Concurrent Cycle was cancelled),这时 Mixed GC 实际是“带病上岗”,容易引发退化。

盯住空间变化数字
一行典型日志像这样:
[GC pause (G1 Evacuation Pause) (mixed), 0.162s] [Eden: 1024M→0B, Survivors: 128M→128M, Heap: 2800M→1650M]

  • Eden 从满到清零:说明年轻代回收按预期执行
  • Survivor 大小不变甚至涨了:可能对象存活率高,或晋升阈值偏低,导致本该留在 Survivor 的对象被推去老年代
  • Heap 总量下降但老年代没明显减少:比如 Heap ↓1150M,但老年代只 ↓200M,其余全靠 Eden 贡献——说明选入 CSet 的老年代 Region 回收效果差,可能是这些 Region 存活率太高,或者根本没选对“高价值”区域

重点看 real 停顿时间和子阶段耗时
real=0.162s 是真实 STW 时间,超过 200ms 就要警惕。展开子阶段看哪块拖后腿:

  • Ext Root Scanning 突增(比如从 2ms 跳到 40ms+):线程数暴增、反射/动态代理类过多
  • Object Copy 时间长:存活对象多,常见于 Survivor 过小、大对象集中、或 G1MixedGCLiveThresholdPercent 设得过高(默认 85%),把本该跳过的高存活 Region 也塞进去了
  • Update RSProcessed Buffers 高:RSet 更新压力大,说明跨 Region 引用频繁,可能业务存在大量弱引用缓存或 Map 类结构持有跨代引用

留意异常提示词

  • 出现 to-space overflowevacuation failed:说明 Region 搬迁失败,大概率触发 Full GC,需检查 -XX:G1HeapRegionSize 是否太小,或是否存在持续分配超大数组
  • Humongous Allocation 同时出现在 mixed 行:大对象正在干扰混合回收节奏,关注 HumongousOccupiedCount 是否单边上涨
  • reclaimable=15.2%(在 G1-Evacuation-Info 行)低于默认 20% 阈值:这批老年代 Region 回收性价比低,G1 可能很快放弃 Mixed GC,转向保守策略

基本上就这些。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

140

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

60

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

40

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

360

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

120

22

GDB C++程序怎么调试
GDB C++程序怎么调试

本专题围绕GDB调试C++程序的实际过程,详细说明程序编译、调试器启动、命令行参数传入、断点命中和程序继续运行等步骤,并介绍条件断点、临时断点和观察点的设置方法,方便开发者跟踪复杂代码的执行状态。

2026.09.11

120

20

Iris框架MVC架构与依赖注入合集
Iris框架MVC架构与依赖注入合集

本专题讲解Iris框架MVC开发模式,包含控制器注册、方法命名与路径映射、By参数绑定、BeforeActivation自定义路由,以及依赖注入容器注册、数据库依赖注入、返回值序列化及MVC下WebSocket与gRPC整合实践。

2026.09.11

80

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133万人学习