OB4.3社区版租户内存告警如何设置自动扩容

社区版4.3集群,业务租户内存水位持续高于90%,想了解租户memory自动扩容的配置方法和注意事项,以及扩容后对unit规格的影响?

1 个赞

OceanBase 的租户内存自动扩容,本质上是调整租户的 Unit 规格(UNIT MIN_MEMORY / MAX_MEMORY) ,由 Root Service 根据水位自动触发 Unit 迁移或规格调整。核心机制是 Unit 的 MIN_MEMORY 与 MAX_MEMORY 之间弹性伸缩 。

1 个赞

@论坛小助手

1 个赞

OceanBase 4.3 社区版租户内存自动扩容配置方法与注意事项

根据检索到的文档片段,OceanBase 4.3 社区版并不直接支持租户内存的自动扩容功能。不过,您可以采取一些手动调整和优化措施来应对内存水位持续高于90%的情况。以下是相关的配置方法、注意事项以及对 UNIT 规格的影响。

1. 手动增加租户内存

在环境中的内存资源相对充足时,可以通过手动增大租户内存的方式来缓解内存压力。具体步骤如下:

  • 确认当前租户使用的 UNIT_CONFIG NAME:

    • 使用 root 用户登录集群的 sys 租户。
    • 执行以下 SQL 语句获取租户的 UNIT_CONFIG NAME。
      obclient> SELECT NAME FROM DBA_OB_UNIT_CONFIGS;
      
  • 修改租户的 UNIT_CONFIG:

    • 根据上一步获取的 UNIT_CONFIG NAME,使用以下命令修改租户的内存大小。
      obclient> ALTER RESOURCE UNIT test_unit MIN_CPU = 2, MAX_CPU = 2, MEMORY_SIZE = '10G', MAX_IOPS = 10000, MIN_IOPS = 10000;
      
    • 当前版本中,仅 CPU 和 Memory 配置生效,其他 I/O 参数(例如 IOPS)暂不生效。

2. 调整 MemTable 相关参数

为了更有效地管理内存,可以调整 MemTable 相关的参数,以达到临时扩容的效果。主要参数包括:

  • freeze_trigger_percentage:当租户的 MemTable 内存的使用量达到此配置项所限制使用的百分比时,会自动触发转储,释放占用的内存。默认值为 20%。
  • memstore_limit_percentage:控制租户内存中可用于 MemStore 写入的比例,默认值为 50%,表示租户可使用的 MemStore 占其总可用内存的 50%。

示例配置:

obclient> ALTER SYSTEM SET freeze_trigger_percentage = 20;
Query OK, 0 rows affected

obclient> ALTER SYSTEM SET memstore_limit_percentage = 70;
Query OK, 0 rows affected

3. 注意事项

  • 资源池管理:在进行租户的扩容操作前,如果之前有租户被删除,建议同时删除对应的资源池,以便释放资源。
  • 转储操作:在执行租户缩容操作前,建议进行一轮转储以便释放租户正在使用的内存。
  • 性能影响:扩容后,需要关注对整体系统性能的影响,特别是 CPU 和内存的使用情况。

4. 对 UNIT 规格的影响

通过上述步骤增加租户内存后,UNIT 规格中的 MEMORY_SIZE 会相应增加。这将直接影响租户的计算能力和存储容量,从而提升单节点的服务能力。

5. 其他建议

  • 监控和告警:建议设置内存使用率的监控和告警,以便及时发现并处理内存问题。
  • 定期检查:定期检查租户的资源使用情况,并根据实际需求进行调整。

综上所述,虽然 OceanBase 4.3 社区版不支持自动扩容功能,但通过手动调整内存配置和 MemTable 相关参数,可以有效应对内存水位高的问题。希望这些信息对您有所帮助。如果需要进一步的帮助,请联系 OceanBase 的人工答疑以获取更多支持。

具体信息可参考以下文档:

  1. 在您开始前
  2. 通过调整资源规格实现租户扩缩容
  3. freeze_trigger_percentage
  4. memstore_limit_percentage
  5. 设置日志同步限速
  6. ob_plan_cache_percentage
  7. 修改资源规格