OceanBase 合并期间业务写入延迟升高,__all_virtual_compaction 中哪些指标需要重点关注?

环境:OceanBase 4.x 集群,3 Zone,业务高峰期合并触发后,应用侧反馈写入 RT 从 5ms 涨到 20ms+。

已看:

  • GV$OB_COMPACTION_PROGRESS 和 __all_virtual_compaction 中能看到合并正在进行;
  • 合并的 start_time 和业务高峰时段有重叠;
  • 磁盘 IO 在合并期间有明显上升,但未打满。

想请教:

  1. OceanBase 的合并调度是否可以和业务高峰期错开?有没有参数或策略可以控制合并的触发时机?
  2. 合并期间写入变慢,通常是哪些底层资源在竞争?是 IO、CPU,还是 MemTable 转储的压力?
  3. __all_virtual_compaction 里哪些字段能判断合并是否“健康”,有没有推荐的查询语句?
  4. 如果确实无法错开,有哪些参数可以降低合并对在线业务的影响(比如并行度、限速)?

1、合并肯定要和业务高峰错开,毕竟合并会产生大量IO,尤其影响对RT敏感的业务,合并的时间可以修改,有对应参数 major_freeze_duty_time
2、主要还是冻结数据以及重新写成基线数据的操作RT影响较大
3、 GV$OB_COMPACTION_PROGRESS 推荐看这个视图,信息要全点有你想要的状态信息
4、合并这个操作在OB这种存储引擎下无法避免,所以提供了很多参数来降低合并对业务的影响,比如合并时间、合并线程数、自适应合并等等