收到相关告警后,管理员需要登录对应告警对象的 OceanBase 集群的 sys 租户,进行具体原因定位。

租户性能趋​势排查

在使用 OCP 租户级别性能监控前,需要先登录 sys 租户,根据报错日志中的 信息,使用下面的 SQL 查询到具体告警租户名称。如上图的日志告警中 tenant_id 为 1006,示例 SQL 语句如下所示:

在租户性能趋势界面中主要关注指标 QPS、QPS_RT、TPS、TPS_RT 和 ACTIVE_MEMSTORE_PERCENT,并找到告警对应时间点,确认是否符合预期。一般在告警时间点附近,以上监控指标变化情况可能包括以下几种情况:

  • QPS_RT 突然明显升高,其他指标无明显变化趋势,同时 ACTIVE_MEMSTORE_PERCENT 指标未达到合并阈值。这种情况说明查询中存在大查询,且大查询消耗内存超过阈值触发了日志告警。
  • TPS_RT 突然明显升高,同时 QPS_RT 也有升高趋势但是其他指标变化不明显,且ACTIVE_MEMSTORE_PERCENT 指标未达到合并阈值。这种情况说明租户执行了一些大事务,事务消耗内存超过阈值触发了日志告警,同时对查询性能也造成了一定影响。

用户 SQL 监控排查

针对排查过程中遇到的不同情况,本文档将根据问题解决的推荐度及收益从高到低的顺序依次进行介绍;

  1. 大查询。由大查询或者烂 SQL 引起的租户内存超限问题,在定位到问题 SQL 后,可进行 SQL 优化达到减小查询内存消耗的目标,从而避免出现租户内存使用日志告警。
  2. 大事务。由于大事务或者批量导数引起的租户报内存不足的情况,通过定位到具体事务内容后,进行事务处理优化最终达到大事务变为小事务的目标,避免发生内存使用超限。
  3. 租户变量配置。当 SQL 调优到极限或事务大小已经到最小业务许可范围时,通过增大目标业务租户的 变量(默认值为 5,即租户单个资源单元内存规格的 5%)可增加 Session 使用内存量,此变量可配置为 Session 级别或 Global 级别,推荐值域为 [5,80]。示例语句如下所示:
  1. --Session 级别:
  2. set global ob_sql_work_area_percentage = xxx;
  1. 租户内存扩容。当以上方法均尝试后仍有租户内存超限告警的,可考虑对租户进行扩容,详细操作信息,请参阅本手册 章节里的内容。如最终定位异常原因与转储、合并异常有关,详细操作信息,请参阅本章 合并异常处理 内的内容。