社区版OCP的metadb 内存如何缩容

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OCP4.3.1 OceanBase4.1
【 使用版本 】社区版
【问题描述】社区版OCP所在服务器的内存 total 为125G,OCP的metadb的memory_limit为120G,OCP和metadb所在一台服务器上。目前OCP应用的内存过小,这个OCP管理的集群和租户都很多,想缩容一下metadb的memory_limit,腾一些内存给OCP应用,可以直接使用 alter命令 修改 memory_limit 缩容吗
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据文档库中的信息,您可以直接使用 ALTER TENANT 命令来修改 MetaDB 的 memory_limit 参数,从而实现缩容。以下是具体步骤:

  1. 登录 OCP:

    • 使用管理员账号登录 OCP 控制台。
  2. 进入 MetaDB 租户:

    • 在 OCP 控制台中,找到并进入 MetaDB 租户的管理页面。
  3. 执行 ALTER TENANT 命令:

    • 在 MetaDB 租户的 SQL 执行页面,执行以下命令来修改 memory_limit 参数:
      ALTER TENANT <metadb_tenant_name> SET MEMORY_LIMIT = '<new_memory_limit>';
      
    • 例如,如果您希望将 MetaDB 的 memory_limit 从 120G 缩减到 100G,可以执行:
      ALTER TENANT metadb SET MEMORY_LIMIT = '100G';
      
  4. 验证修改:

    • 执行完上述命令后,可以在 OCP 控制台的 资源管理 页面中查看 MetaDB 租户的内存使用情况,确保 memory_limit 已经成功修改。

注意事项

  • 资源充足: 在缩容之前,请确保 OCP 应用有足够的内存资源可用,以避免因内存不足导致 OCP 应用性能下降或故障。
  • 监控影响: 缩容 MetaDB 的内存可能会对其性能产生影响,建议在低峰时段进行操作,并密切监控 MetaDB 的性能指标,确保其稳定运行。
  • 备份数据: 在进行任何重大变更之前,建议备份重要数据,以防万一。

文档参考

  • 文档片段 1: MetaDB 用于存储除了监控数据的其它持久化数据,需要的资源相对较少,推荐在 OceanBase 中创建独立的租户用于 MetaDB,并最低分配给该租户 4C、8GiB 内存。
  • 文档片段 9: OceanBase 数据库提供以下两种方式来设置自身内存的上限:按照计算机器总内存上限的百分比计算自身可以使用的总内存,由 memory_limit_percentage 参数配置;直接设置 OceanBase 数据库可用内存的上限,由 memory_limit 参数配置。

如果您在操作过程中遇到任何问题,建议联系 OceanBase 的技术支持团队获取进一步的帮助。

更多信息请查看:

  1. 主机规划
  2. tenant_memstore_percent_over_threshold OB 租户内存使用百分比超限
  3. ob_tenant500_mem_hold_percent_over_threshold OB 500 租户内存占用率超限
  4. ob_tenant500_mem_hold_over_threshold OB 500 租户的占用内存大小超限
  5. OceanBase 租户常见问题
  6. OceanBase 云平台 Express (OCP Express)
  7. 数据库内存上限
  8. 产品 FAQ
  9. 租户间的资源隔离
  10. 系统内部内存管理

OCP部署方式为OBD部署

根据文档库中的信息,如果您使用 OBD(OceanBase Deployer)部署了 OCP,并且希望缩容 MetaDB 的 memory_limit,可以通过以下步骤来实现:

步骤 1: 登录 OCP 宿主机

首先,您需要登录到 OCP 宿主机。

步骤 2: 进入 OBD 环境

执行以下命令进入 OBD 的环境:

source ~/.oceanbase-all-in-one/bin/env.sh

步骤 3: 连接到 MetaDB

使用 OBD 提供的命令连接到 MetaDB。假设 MetaDB 的租户名为 metadb,您可以使用以下命令连接到 MetaDB:

obclient -h<host> -P<port> -u<user>@<tenant> -p<password>

例如:

obclient -h127.0.0.1 -P2881 -uroot@metadb -p<your_password>

步骤 4: 修改 MetaDB 的 memory_limit

在连接到 MetaDB 后,执行以下 SQL 命令来修改 memory_limit

ALTER TENANT metadb SET MEMORY_LIMIT = '100G';

步骤 5: 验证修改

执行完上述命令后,可以在 OCP 控制台的 资源管理 页面中查看 MetaDB 租户的内存使用情况,确保 memory_limit 已经成功修改。

注意事项

  • 资源充足: 在缩容之前,请确保 OCP 应用有足够的内存资源可用,以避免因内存不足导致 OCP 应用性能下降或故障。
  • 监控影响: 缩容 MetaDB 的内存可能会对其性能产生影响,建议在低峰时段进行操作,并密切监控 MetaDB 的性能指标,确保其稳定运行。
  • 备份数据: 在进行任何重大变更之前,建议备份重要数据,以防万一。

文档参考

  • 文档片段 1: MetaDB 是 OCP 的重要组成部分,用于存储 OCP 管理元信息及监控数据。您可以选择创建全新的 OceanBase 数据库作为 OCP 的 MetaDB 或使用已有的 OceanBase 数据库作为 OCP 的 MetaDB。
  • 文档片段 4: 介绍了如何通过 OBD 部署 OCP 的步骤,包括安装部署程序、使环境变量生效等。
  • 文档片段 9: 介绍了如何使用 OBD 部署 OceanBase 集群,包括命令行和白屏界面部署方式。

如果您在操作过程中遇到任何问题,建议联系 OceanBase 的技术支持团队获取进一步的帮助。

更多信息请查看:

  1. 主机规划
  2. tenant_memstore_percent_over_threshold OB 租户内存使用百分比超限
  3. ob_tenant500_mem_hold_percent_over_threshold OB 500 租户内存占用率超限
  4. ob_tenant500_mem_hold_over_threshold OB 500 租户的占用内存大小超限
  5. OceanBase 租户常见问题
  6. OceanBase 云平台 Express (OCP Express)
  7. 数据库内存上限
  8. 产品 FAQ
  9. 租户间的资源隔离
  10. 系统内部内存管理

更多信息请查看:

  1. 使用图形化界面部署 OCP
  2. 使用容器部署 OCP
  3. 使用图形化界面升级 OCP
  4. 什么是 obd
  5. 使用 OCP 接管 obd 部署的集群
  6. 通过图形化界面部署 OCP
  7. 使用命令行部署 OCP
  8. obd
  9. 通过 obd 白屏部署 OceanBase 集群
  10. 使用命令行部署 OceanBase 数据库生产环境
  11. 部署 OceanBase 集群

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

alter修改完metadb的memory_limit,需不需要更改相关的obd参数


看一下 你的ocp的metadb集群配置 这两个参数是哪个 修改一下就好了 在ocp白屏下修改就好了

看来OCP的metadb集群修改内存不用更改obd配置文件,谢谢

可以动态的修改的 但是obd的配置的config文件不会同步 下次重新启动的时候 还会读这个文件 但是obd修改config这个文件 调小了memory_limit需要重新装 调大了没有问题

1 个赞

OCP需要这么多内存吗 看得我想打退堂鼓

ocp主机规划 有文档你参考一下
https://www.oceanbase.com/docs/common-ocp-1000000000826976

1 个赞