怎么查看clog滑动窗口实际使用了多大

【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】3.2.3.0
【问题描述】clog_max_unconfirmed_log_count该参数设置成了5000,怎么判断用了多少。除了通过告警还有什么方法判断clog滑动窗口是否满了。
【复现路径】
【附件及日志】
clog 滑动窗口的介绍。

  • clog 滑动窗口用来缓存还没有完成多数派确认(confirm)的 clog 日志。OceanBase 数据库的事务提交保证在完成了 clog 多数派落盘和本地落盘后,便可以将 clog 从本地(Leader 或者 Follower)的滑动窗口中滑出。

  • clog 滑动窗口以分区为单位进行管理,其大小由租户级参数 clog_max_unconfirmed_log_count 控制。

    • 在默认设置下,Leader 的滑动窗口为 1500,Follower 的滑动窗口为 3000。
  • 在高并发、大批量数据更新(插入)操作中,可能会出现滑动窗口满掉,事务提交持久化性能变差,甚至会引起切主(日志同步超时导致主动卸任)导致事务失败。此时,需要提高 clog_max_unconfirmed_log_count 值来应对。

可以通过以下几种方式来进行判断:

  1. 查看日志
  • 对于 Leader 分区 的 Clog 滑动窗口满的情况,您可以在 observer.log 文件中查找类似 submit log error.*-4023 的消息。

  • 对于 Follower 分区 的 Clog 滑动窗口满的情况,您可以在 observer.log 文件中查找类似 check_can_receive_log, now can not recieve log 的消息。

  1. 监控指标
  • 监控 clog_max_unconfirmed_log_count 的相关指标,例如可以通过 OceanBase 提供的监控工具或接口来实时查看 Clog 滑动窗口的状态。

  • 关注事务响应时间 (RT) 的变化,如果 RT 值整体升高,可能是 Clog 滑动窗口满导致的。

  1. 性能分析
  • 分析 Clog 提交写入的变化趋势,例如检查是否有新的高并发场景上线,这些场景可能会对 Clog 滑动窗口造成额外的压力。

  • 如果业务并发没有显著增加但仍遇到该问题,可以进一步诊断 Clog 滑动窗口的滑出是否有瓶颈,例如 Follower 节点是否因为转储慢或内存不足而导致 Clog 回放不进内存。

  1. 数据库状态查询
  • 可以通过执行一些特定的 SQL 查询来获取当前数据库的状态,例如查询 __all_clog_stat 表来了解 Clog 的状态。
3 个赞

提供一个思路:如果你是企业版,开工单拿到OCP对clog_max_unconfirmed_log_count监控用得SQL,参考这个SQL,应该可以查到你需要得结果

4 个赞

3.2.3.0版本为企业版,
1.如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
2.如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
OceanBase官网商务咨询

https://www.oceanbase.com/contactus?fromPage=https%3A%2F%2Fwww.oceanbase.com%2Fsoftwarecenter-enterprise&dataSources=softwarecenter-enterprise_footercontact_d2022