社区版4.3集群,业务租户内存水位持续高于90%,想了解租户memory自动扩容的配置方法和注意事项,以及扩容后对unit规格的影响?
1 个赞
OceanBase 的租户内存自动扩容,本质上是调整租户的 Unit 规格(UNIT MIN_MEMORY / MAX_MEMORY) ,由 Root Service 根据水位自动触发 Unit 迁移或规格调整。核心机制是 Unit 的 MIN_MEMORY 与 MAX_MEMORY 之间弹性伸缩 。
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 的人工答疑以获取更多支持。
具体信息可参考以下文档: