吴寅洲
2026 年3 月 23 日 17:17
#1
【 使用环境 】测试环境
【 OB or 其他组件 】ODC
【 使用版本 】4.4.1-1768284552000
【问题描述】 在odc上测试mysql往ob归档的任务,任务配置参数为默认的:行限流 1000 Rows/s 数据大小限流 10 MB/s
目标ob集群的规格配置为3C12G的unit,集群为1-1-1架构,能确认租户是没有其他人在使用的,只有这个任务即将开始跑,但是就是这么一个空闲租户现在odc归档任务跑不起来,一直报错内存约束,请问是odc不支持这么低配置的租户的任务吗?期待回复,谢谢!
【复现路径】官方文档拉起ODC docker后添加数据源建立归档任务测试
【附件及日志】
ODC归档任务->执行详情->任务日志
[2026-03-23 17:14:19 CST][Job-MIGRATE-1-1-0-MigrateWriter-7][2] [WARN] Write operation not allowed due to memory constraints, sleeping for 50 seconds - Database: wyz_ob_archive_testdb
3 个赞
小智0324
2026 年3 月 23 日 17:26
#3
调整 ODC 归档任务的限流 / 并发参数,默认的 1000 行 /s、10MB/s 对 3C12G 租户仍偏高,需进一步降低写入速率和并发,适配小规格租户。 解决关键是降低 ODC 归档的写入速率 / 并发(行限流 100-200 行 /s、1-2 MB/s),辅以 OB 租户内存参数的临时放宽。
吴寅洲
2026 年3 月 23 日 17:36
#4
把参数调整至100 rows/s + 限流1MB/s ,再加上调整了参数
ALTER SYSTEM SET writing_throttling_trigger_percentage = 80 TENANT = ‘archive’
还是不行,检查也太严格了
咖啡哥
2026 年3 月 23 日 17:37
#5
看看你odc的资源使用情况。
docker stats odc
咖啡哥
2026 年3 月 23 日 17:39
#6
尝试调整下任务内存限制
# 修改单任务限制:1024M--》512M。
update config_system_configuration set value = '512' where `key` = 'odc.task-framework.job-process-min-memory-size-in-mb' limit 1;
1 个赞
吴寅洲
2026 年3 月 23 日 17:39
#7
ID NAME CPU % MEM USAGE / LIMIT MEM % NET IO BLOCK IO PIDS CPU TIME AVG CPU %
xxx obodc 9.31% 2.349GB / 8.59GB 27.34% 0B / 0B 0B / 12.26MB 229 5m51.52896s 9.31%
起docker也是用的官方文档中的-d -i --net host --cpu-period 100000 --cpu-quota 400000 --memory 8G --name "obodc"默认参数
咖啡哥
2026 年3 月 23 日 17:43
#8
你先按我说的调整下内存限制那个参数。odc元数据库
然后看看你当前跑了多少个任务。
select status,count(1) from job_job where executor_destroyed_time is null group by status;
吴寅洲
2026 年3 月 23 日 17:51
#10
调到512了还是不行,执行中任务也能确认只有目前一个测试的
MySQL [odc_metadb]> select status,count(1) from job_job where executor_destroyed_time is null group by status;
±--------±---------+
| status | count(1) |
±--------±---------+
| RUNNING | 1 |
±--------±---------+
咖啡哥
2026 年3 月 23 日 17:52
#11
开启odc.task-framework.enable-task-supervisor-agent,不检查内存
这个特性创建任务的话 会依赖config_system_configuration 中 odc.task-framework.max-allow-running-jobs 这个配置,默认为8
insert into config_system_configuration(key, application, profile, label, description, value) values(‘odc.task-framework.enable-task-supervisor-agent’, ‘odc’, ‘default’, ‘master’, ‘enable task supervisor agent’, ‘true’);
1 个赞
吴寅洲
2026 年3 月 23 日 18:11
#12
重新克隆了一个任务,insert了这条参数以后发现ODC站点上的任务状态显示不更新了,一直是“待调度”,并且任务还是没跑起来,还是一样的warning
咖啡哥
2026 年3 月 23 日 18:14
#13
你把完整的日志发来看看。
我之前遇到就是这样解决的。。。要不你容器多给点资源,重启下容器试试
吴寅洲
2026 年3 月 23 日 18:18
#14
所以老哥还是觉得是ODC容器配置给太低了而不是OB这里的配置太低么,你现在生产用ODC跑归档吗,有最佳实践的参数配置参考么?我现在主要碰到的问题是现在用的ptarchiver归档太慢了,现在在选型是mydumper&myloader还是用ODC,如果ODC需要不停的限速才能跑起来那可能也不适合我们这里的情况了