drainer内存问题

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】

数据库ddl语句较多,临时表truncate较多,有些临时表无索引。
同步时间为15号0点左右的数据

【概述】场景+问题概述
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)

%E5%9B%BE%E7%89%87

内存达到62G时启动成功
%E5%9B%BE%E7%89%87

启动成功后状态还是down

[drainer.log|attachment](upload://5tkccfb8J76vso5Xahg0sal1DRZ.log) (38.3 MB)[drainer.log|attachment](upload://5tkccfb8J76vso5Xahg0sal1DRZ.log) (38.3 MB)
2 个赞

日志看不到

drainer.log (38.3 MB)

咱们是啥场景,为啥这么多 DDL

许多的临时数据传输,还有临时计算,临时表使用。(开发水平一般)

确认一个问题哈,现在的问题是想知道 内存使用为啥这么大,对吧,drainer 的状态现在正常对吧,现在drainer 运行正常对吧(主要是这个应该是产品设计问题,DML 应该有内存限制,但 DDL 估计没考虑,我需要反馈一下)

对 现在启动需要已经至少64G内存了。现在状态正常了 在同步数据了

:ok_hand:,那我反馈一下,这个是产品问题

ok.按照我这个场景,后续可能要128G了。。

请教下大佬,这块的内存消耗是因为什么呢,是因为DDL会把整张表的数据放到drainer的内存中么

我可不是大佬,不过原因具体不确定,不过不是你说的哪个原因,和 drainer 自己维护的 DDL 信息相关,但为啥这么大,还需要排查(到时候,看看排查结果,我这里反馈吧)

%E5%9B%BE%E7%89%87

好的,感谢

@songxuecheng 有时间帮抓一下 drainer 的 pprof heap 吧

如何操作

http://:/debug/pprof/goroutine?debug=2

mem.heap (181.2 KB)

curl http://{TiDBIP}:10080/debug/zip?seconds=60 --output debug.zip 类似这个命令,再执行一遍吧(把ip和端口替换一下)

数据有问题 drainer已经停掉了 等我重新同步在上传一下

好滴好滴