prodcd
2024 年12 月 3 日 14:05
#1
【 使用环境 】测试环境
【 OB or 其他组件 】OCP
【 使用版本 】ocp-all-in-one-4.3.2-20241012145836.el7.x86_64.tar.gz 使用Web安装
【问题描述】报错OBD-4368
【复现路径】
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
【检查项】oceanbase-ce:ocp tenant memory
【报错内容】OBD-4368: The allocated memory for the provided meta database is currently insufficient for creating a tenant. Available: 3G, Need: 12G(Available = memory_limit [6G] - system_memory [1G] - sys tenant memory [2G]. Need = ocp meta tenant memory [4G] + ocp_monitor_tenant_memory [8G]).
一开始OCP和2个observer都是8G内存,看到报错后OCP改成32G,报错依旧是“Available: 3G”。而observer后来升级到16G。报错内容也从“Available: 3G”变成了Available: 6G。难道这里计算的是observer的内存?
论坛小助手
2024 年12 月 3 日 14:07
#3
根据文档库中的信息,您的问题涉及到 OCP 安装过程中关于内存配置的错误。具体来说,错误 OBD-4368
表示分配给元数据库(MetaDB)的内存不足以创建租户。以下是详细的分析和解决方案:
问题分析
错误信息解析 :
报错内容:OBD-4368: The allocated memory for the provided meta database is currently insufficient for creating a tenant. Available: 3G, Need: 12G(Available = memory_limit [6G] - system_memory [1G] - sys tenant memory [2G]. Need = ocp meta tenant memory [4G] + ocp_monitor_tenant_memory [8G]).
解释:当前可用内存为 3G,但创建租户需要 12G 内存。计算公式为:Available = memory_limit [6G] - system_memory [1G] - sys tenant memory [2G]
,而 Need = ocp meta tenant memory [4G] + ocp_monitor_tenant_memory [8G]
。
内存配置检查 :
您提到最初 OCP 和两个 Observer 都是 8G 内存,后来 OCP 改为 32G,但报错依旧显示 Available: 3G
。
后来 Observer 升级到 16G,报错内容变为 Available: 6G
。
解决方案
检查 OCP 机器的内存配置 :
根据文档片段 4,OCP-Server 机器的内存配置建议如下:
管理的机器数量 ≤ 10 台:4C 8GiB
管理的机器数量 ≤ 50 台:8C 16GiB
管理的机器数量 ≤ 100 台:16C 32GiB
管理的机器数量 ≤ 200 台:32C 64GiB
管理的机器数量 ≤ 400 台:64C 128GiB
确保 OCP 机器的内存配置符合上述建议。
检查 Observer 的内存配置 :
根据文档片段 3,MonitorDB 租户的内存配置建议如下:
管理机器数量 ≤ 10 台:4C 16GiB
管理机器数量 ≤ 50 台:16C 64GiB
管理机器数量 ≤ 100 台:32C 128GiB
管理机器数量 ≤ 200 台:64C 256GiB
管理机器数量 ≤ 400 台:128C 512GiB
确保 Observer 的内存配置符合上述建议。
调整系统内存参数 :
重启 OCP 和 Observer :
有时候,内存配置更改后需要重启 OCP 和 Observer 才能生效。您可以通过 OCP 的界面重启相关节点:
在 OCP 中进入该 OceanBase 集群 总览 页的 OBServer 列表 中单击 重启 按钮,来重启 observer 进程。
总结
确认 OCP 机器的内存配置符合建议。
确认 Observer 的内存配置符合建议。
调整 system_memory
参数以增加可用内存。
重启 OCP 和 Observer 以使配置生效。
希望以上步骤能帮助您解决内存不足的问题。如果问题仍然存在,请联系 OceanBase 的技术支持人员获取进一步的帮助。
详情请参考:
ob_tenant500_mem_hold_percent_over_threshold OB 500 租户内存占用率超限
ob_tenant500_mem_hold_over_threshold OB 500 租户的占用内存大小超限
主机规划
OCP 系统常见问题
使用图形化界面部署 OCP
系统内存不足/泄漏
system_memory
4000 ~ 4499
lob_enable_block_cache_threshold
global_write_halt_residual_memory
range_optimizer_max_mem_size
辞霜
2024 年12 月 3 日 15:55
#7
yaml中,obd cluster edit-config xxxx
论坛小助手
2024 年12 月 3 日 16:00
#8
根据您的问题,您需要调整 OCP 和 Observer 的内存配置。以下是在不同地方进行配置的具体步骤:
1. 调整 OCP 机器的内存配置
通过 OCP 界面调整
登录 OCP 控制台 :
打开浏览器,输入 OCP 的访问地址,登录 OCP 控制台。
进入系统设置 :
在 OCP 控制台的左侧导航栏中,选择 系统设置 > 系统配置 。
修改内存配置 :
在系统配置页面中,找到与内存相关的配置项,如 memory_limit
和 system_memory
。
修改这些配置项的值,确保它们符合您的需求。
保存配置 :
通过命令行调整
如果您更喜欢使用命令行,可以通过 obd
工具进行配置:
obd cluster edit-config <cluster_name> --set memory_limit=32G
obd cluster edit-config <cluster_name> --set system_memory=12G
2. 调整 Observer 的内存配置
通过 OCP 界面调整
登录 OCP 控制台 :
打开浏览器,输入 OCP 的访问地址,登录 OCP 控制台。
进入集群管理 :
在 OCP 控制台的左侧导航栏中,选择 集群管理 > 集群列表 。
选择集群 :
编辑配置 :
在集群详情页面中,选择 配置管理 > 集群配置 。
找到与内存相关的配置项,如 memory_limit
和 system_memory
。
修改这些配置项的值,确保它们符合您的需求。
保存配置 :
通过命令行调整
您也可以通过 obclient
工具直接修改 Observer 的配置:
obclient -h <observer_ip> -P <observer_port> -u root@sys -p <password>
进入 obclient
后,执行以下 SQL 语句:
ALTER SYSTEM SET memory_limit='32G';
ALTER SYSTEM SET system_memory='12G';
3. 重启 OCP 和 Observer
通过 OCP 界面重启
登录 OCP 控制台 :
打开浏览器,输入 OCP 的访问地址,登录 OCP 控制台。
进入集群管理 :
在 OCP 控制台的左侧导航栏中,选择 集群管理 > 集群列表 。
选择集群 :
重启节点 :
在集群详情页面中,选择 OBServer 列表 ,找到需要重启的节点。
单击节点右侧的 重启 按钮,重启该节点。
通过命令行重启
您也可以通过 obd
工具重启集群:
obd cluster restart <cluster_name>
总结
调整 OCP 机器的内存配置 :
通过 OCP 界面或命令行工具 obd
修改 memory_limit
和 system_memory
配置。
调整 Observer 的内存配置 :
通过 OCP 界面或命令行工具 obclient
修改 memory_limit
和 system_memory
配置。
重启 OCP 和 Observer :
通过 OCP 界面或命令行工具 obd
重启相关节点。
希望以上步骤能帮助您解决内存不足的问题。如果问题仍然存在,请联系 OceanBase 的技术支持人员获取进一步的帮助。
具体信息可参考以下文档:
writing_throttling_maximum_duration
writing_throttling_trigger_percentage
datafile_disk_percentage
trace_log_slow_query_watermark
datafile_size
open_cursors
strict_check_os_params
ob_vector_memory_limit_percentage
storage_rowsets_size
system_memory
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)