obbinlog如何修改实例内存

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】obbinlog401
【 使用版本 】社区版
【问题描述】obbinlog所在主机内存被打爆,查看是binlog租户内存占用过多,使用 alter binlog instances set binlog_memory_limit=XXG 命令修改完好像没有生效,效果不大,如何修改实例的内存呢
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

1 个赞

应该是配置这个参数 我看文档没有此alter binlog instances set binlog_memory_limit=XXG命令修改这个参数的 可以动态生效的

配置参数


https://www.oceanbase.com/docs/community-oblogproxy-doc-1000000001493744

1 个赞

好的,这个我看到过,不知道改binlog的conf还是instances的conf,我先改一下binlog的试一下

1 个赞

根据文档库中的信息,binlog_memory_limit 参数是用于控制 binlog 实例的内存限制。您提到修改 alter binlog instances set binlog_memory_limit=XXG 似乎没有生效,这可能是因为参数配置的位置或方法不正确。

对于 obbinlog 的配置,通常有两种方式可以调整:

  1. 通过 SQL 命令修改实例配置
    如果您希望对正在运行的 binlog 实例进行动态调整,应该使用类似如下的 SQL 命令:

    ALTER SYSTEM SET binlog_memory_limit='XXG' BY QUERY /*+ READ-consistency(WEAK) */;
    

    或者针对特定租户下的 binlog 实例:

    ALTER TENANT <tenant_name> SET VARIABLES binlog_memory_limit='XXG';
    
  2. 修改配置文件
    如果需要永久性地更改此参数,则需要编辑 obbinlog 的配置文件(通常是 obbinlog.conf 或者其他相关配置文件),找到 binlog_memory_limit 这个参数并设置合适的值。然后重启 obbinlog 服务以使更改生效。

建议先尝试通过 SQL 命令来临时调整 binlog_memory_limit 参数,并确认其是否有效。如果确实需要长期改变这个参数,请确保按照正确的步骤修改配置文件并且重启服务。同时请注意,在生产环境中做任何变更之前,最好先在测试环境中验证这些变更的影响。

如果您已经按照上述方法操作但仍然遇到问题,或者不确定具体应该如何操作,请提供更多的上下文信息和日志记录,以便我们进一步帮助您排查问题。

更多信息请查看:

  1. 删除 Incr-Sync 组件
  2. 更改归档目的端
  3. oms_migration_failed 迁移任务失败
  4. 为 MySQL 数据库开启 Binlog
  5. oms_sync_failed 同步任务失败
  6. oms_migration_delay 迁移任务延迟
  7. oms_sync_delay 同步任务延迟
  8. 管理计算平台
  9. ARCHIVELOG

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

1 个赞

服务器资源(8c 32G)使用情况:


从上图看 每个instance 使用的内存 有大有小,导致服务内存资源不足 宕机了。
想了解下,
1、obbinlog 每个 instance 使用的内存是怎么限制的?instance 的内存是共享还是独享?

1 个赞

没有 每个instance之间是独立的 只有一个obcdc的内存限制参数

1 个赞

我们把全局配置文件的binlog_memory_limit 改完之后,是不是需要重启binlog instances才能生效呢?还是需要修改每个instances的配置文件

1 个赞

1 个赞

这个我知道,binlog instances需要重启吗,binlog server 关闭之后,binlog instances在后台还是运行的

1 个赞

不用重启 重启服务就行

1 个赞

我们调整完 config_template 表中的 binlog_memory_limit 的值后 重启 binlog server 感觉没有什么变化

1 个赞

意思就是内存还没有下去 占用还是很多是么?如果是的 那建议把binlog instances也重启一下

1 个赞

重启实例变化也不大,我们 DROP删除 一部分租户备实例后, ps -ef 发现后台还有相应的binlog实例的进程在跑 kill -9 这些进程后内存才降下来

1 个赞

那就是实例占用了内存 导致内存没有被释放 导致的

好像有个binlog_memory_limit参数可以看看能不能配合修改吧

这个参数改完效果不大