【 使用环境 】测试环境
【 OB or 其他组件 】
OB
【 使用版本 】
v4.2.3_CE
【问题描述】清晰明确描述问题
我有三台内存为30GB的机器部署Oceanbase的集群,在部署步骤中选择的是最大占用配置,但是在搭建后,创建租户,创建zone副本的时候仍然会有内存不够的现象。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
#3
您的问题可能存在误解,实际上据我所知,OceanBase 集群的资源分配需要考虑到多个方面,包括但不限于机器的硬件配置、租户的资源需求以及集群的扩展性。根据您提供的信息,您目前使用的是三台内存为 30GB 的机器来部署 OceanBase 集群,并且在创建租户时遇到了内存不足的问题。 [1], [6]
1. 了解内存分配的基本原则
OceanBase 集群的内存分配主要依赖于租户的配置。每个租户都有自己的资源单元(Resource Unit),该单元定义了租户能够使用的 CPU、内存等资源的上限。 [8]
2. 分析当前配置
根据您提供的截图信息,当前每个 Zone 的 Unit 规格为 2 核心 2GB 内存,这似乎已经接近或达到了您机器的极限。考虑到 OceanBase 需要一定的系统开销,这样的配置可能确实会导致内存不足的情况发生。
3. 解决方案建议
a. 增加机器的内存
由于您的机器内存较小,建议增加每台机器的内存以满足更高的资源需求。 [2], [3], [5] 这些文档中提到的硬件配置均远高于您当前的配置,表明在低内存环境下部署 OceanBase 可能会遇到困难。
b. 调整租户配置
如果您暂时无法增加硬件资源,可以尝试调整租户的配置,降低每个 Unit 的内存需求。例如,您可以减少 MEMORY_SIZE
的值。 [1] 提供了具体的 SQL 示例,展示了如何调整租户的资源单元配置。
ALTER RESOURCE UNIT test_unit MIN_CPU = 2, MAX_CPU = 2, MEMORY_SIZE = '10G', MAX_IOPS = 10000, MIN_IOPS = 10000;
您可以根据实际情况调整 MEMORY_SIZE
的值,使其更符合您的硬件条件。
c. 优化资源使用
除了调整租户配置外,还可以通过优化应用程序的查询逻辑等方式来减少内存的使用。 [6] 提到 OceanBase 支持多租户架构,可以根据业务需求灵活分配资源。
4. 注意事项
- 在调整配置时,请确保不会影响到现有业务的正常运行。
- 考虑到未来业务的增长,建议提前规划好集群的扩展策略。
希望以上建议对您有所帮助。如果还有其他问题,请随时提问。
详情请参考:
- 在您开始前
- OceanBase Sysbench 性能测试报告
- OceanBase TPC-C 性能测试报告
- 使用命令行部署 OceanBase 数据库生产环境
- OceanBase TPC-H 性能测试报告
- 内存管理概述
- OceanBase 数据库 TPC-C 测试
- 体验多租户特性
- OceanBase 云平台 Express (OCP Express)
1 个赞
皇甫侯
#4
估计你的system_memory参数给的比较大。。可以看看OCP上的集群的资源管理页面还剩下多少资源可以分配
1 个赞
我是按照默认部署的方式去搭建的集群,哪里可以将这个参数设置的小一点吗,或者说重新搭建哪里需要注意一下
1 个赞
皇甫侯
#6
ocp页面上或者命令行上先查下这个参数是多少吧。。这个参数要是太大可以搞小点
1 个赞
论坛小助手
#7
根据您的描述,您是通过默认方式部署了 OceanBase 集群,但现在遇到了资源分配上的问题。为了更好地管理和调整集群资源,您可以参考以下几个步骤来解决这个问题:
1. 查看当前集群资源使用情况
首先,登录 OCP 控制台,查看集群的资源水位。这可以帮助您了解当前集群的资源使用情况,从而判断是否真的存在资源不足的问题。 [2]
2. 调整租户资源单元配置
如果发现资源确实紧张,您可以通过调整租户的资源单元(Resource Unit)配置来缓解这一问题。具体步骤如下:
a. 登录 OCP 控制台
- 登录 OCP 控制台。
- 在左侧导航栏中选择 集群,进入集群页面。
- 选择待操作的集群并单击其集群名。
- 在显示的页面的左侧导航栏上,单击 参数管理。
b. 修改租户资源单元配置
- 在 参数管理 页面,找到与租户资源相关的参数。
- 修改租户的资源单元配置,例如降低
MEMORY_SIZE
的值。
- 保存更改。
3. 重新部署集群时的注意事项
如果您决定重新部署集群,以下是需要注意的一些事项:
a. 选择合适的资源规格
在创建集群时,选择合适的资源规格非常重要。确保为每个 Zone 分配足够的资源,同时也要考虑到集群的整体资源限制。 [3]
b. 自定义资源配置
在创建集群的过程中,您可以选择自定义资源配置。这样可以根据实际需求调整各项资源的分配。 [3]
c. 监控资源使用情况
部署完成后,持续监控集群的资源使用情况,及时调整资源分配以避免资源不足的问题。
4. 具体操作步骤
a. 创建集群时的资源配置
- 登录 OCP 控制台。
- 在左侧导航栏上,单击 集群。
- 在 集群 页面右上角,单击 创建集群。
- 在 创建集群 页面,设置集群的基础信息。
- 在 创建集群 页面,设置集群的部署模式信息。
- (可选)在 创建集群 页面,配置集群参数。
- (可选)在 创建集群 页面,通过自定义设置,对路径及端口进行配置。 [3]
b. 修改租户资源单元配置
- 登录 OCP 控制台。
- 在左侧导航栏中单击 租户,并在 租户列表 中单击租户名称。
- 在显示的页面的左侧导航栏上,单击 参数管理。
- 在 参数列表 页面,找到与租户资源相关的参数。
- 修改租户的资源单元配置,例如降低
MEMORY_SIZE
的值。
- 保存更改。
希望以上建议对您有所帮助。如果还有其他问题,请随时提问。 [3]
检索到的文档如下:
- 查看参数列表
- 查看集群详情
- 使用 OCP 部署三副本 OceanBase 集群
- 检查集群配置项
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
1 个赞
这个图显示没多少了,但是我的机器的内存还有很多,没有充分利用上,可以提供一下查询这个参数的sql吗
1 个赞
皇甫侯
#9
1 个赞
这个zone的内存可以扩充吗,我机器有30GB的内存,但是这里只用了7GB
1 个赞
ocp 里选取集群,查看集群参数 memory
具体看下面几个参数:
-
memory_limit
或 memory_limit_percentage
-
system_memory
1 个赞
皇甫侯
#12
可以把这 memory_limit_percentage
调成90, system_memory
参数调成10G
这样就能多点内存分配给租户,这两个都是集群参数在页面上就能改,改好后重新创建租户就行了
https://www.oceanbase.com/docs/common-ocp-1000000001127059
已经修改此处的值,但是仍旧一个zone只能创建一个租户,这还是需要硬件条件提升吗
皇甫侯
#14
最简单的就是调整下主机内存,不过system_memory确实还能再小点