logproxy和libcdc问题咨询

【测试环境】

【 OB 】

【 4.2.1】

【问题描述】

当集群写入数据很频繁时,libcdc.log会报以下报错,导致下游任务无法拉取到增量数据

[2024-03-15 14:28:13.487541] WARN common_alloc (ob_tenant_ctx_allocator.cpp:457) [322496][LogStreaWorkThr][T0][YEA410A48760C-000000000340000F-0-0] [lt=17][errcode=-4013] No memory or reach tenant memory limit([OOPS]=“alloc failed reason”, msg=server memory has reached the upper limit(server_hold: 107454906368, server_limit: 107456931430, alloc_size: 2097152))

[2024-03-15 14:28:13.487569] WDIAG common_alloc (ob_tenant_ctx_allocator.cpp:462) [322496][LogStreaWorkThr][T0][YEA410A48760C-000000000340000F-0-0] [lt=26][errcode=-4013] oops, alloc failed, tenant_id=500, ctx_id=0, ctx_name=DEFAULT_CTX_ID, ctx_hold=30419574784, ctx_limit=9223372036854775807, tenant_hold=30466359296, tenant_limit=9223372036854775807

这个报错很明显,内存不足了。你的租户、system_memory、observer内存分别是多少?

单台机器:
租户内存是90G
memory_limit 是 130G
system_memory是30G
机器内存总共是251G

还有一个问题,这个内存不足为什么只影响到了libcdc,我的理解他只是一个sdk,如果数据库的内存不足引发的异常应该是服务端那边报错吧

写入速度大概是什么样的?

2 3W qps

上面的日志,是libobcdc.log报出来的?还是observer.log看到的,可以把日志文件发一下吗

libobcdc.log.zip (593.2 KB)

这个有老师能看下么,我调大的租户内存发现也还是不行

可以帮忙测试一下,写入慢慢加上去,看每秒插入多少数据量的时候会触发这个报错吗?

按照经验来看大概是3W,但是我前两天把租户内存又整体调大了,但是还不行

看上面的报错是500租户无法分配,可以调大system_memory试试

另外,把observer.log的日志发一下给我

好的,稍后我再复现一下给您

怎么控制observer.log的大小和数量

参考一下这几个配置项:
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000508154

observer.log的日志太大,里面数据的信息也有记录,不太好发,您能给几个关键词我去搜下么

logproxy近期(约一周左右)会有新的版本(v2.0.1 BP1),集成了最新的obcdc 4.2.1.4,优化了一些场景下的内存资源占用,到时候可以试下效果

这个有具体文档么,但是我感觉问题是出在服务端