tidb-lightning导入数据OOM

【 TiDB 使用环境】生产环境 /测试/
【 TiDB 版本】 v5.4.3
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
大概60T数据,每次启动lightning跑了一阵子后都被系统OOM了, 内存是64G的机器,cpu逻辑核心是16,region-concurrency 之前是默认的,后来调到10,再到5。
这里有二个疑问:

  1. 看日志已经跑到sample source data阶段了,这表示是否已经开始在导入数据了? 还是依旧是检测备份文件阶段?另外排序的那个目录也只有一些很小的文件,这正常吗?

  1. lightning启动后断点续传文件检测到不在,但是又找不到创建新的? 是不是意味着数据导入其实还没开始?

现在的现象感觉是数据一直没导进去,pd监控上的数据量也一直没有增长,然后lightning的内存一直在增大,直到OOM。

【资源配置】
【附件:截图/日志/监控】

机器上就只跑了一个lightning,内存都是被lightning占用了。

60T数据用lighting导啊?

单个文件多大,尽量拆成小文件导入

不然用啥导?

有些单文件挺小的,dump的时候也切分了表最大256M。

初步判断 TiDB Lightning 在导入数据时遇到了内存不足的问题,导致进程被系统 OOM Killer 杀死。这种情况通常是由于数据量过大,导致 TiDB Lightning 在进行排序、合并等操作时需要占用大量内存,而机器的内存无法满足这些操作的需求,从而导致进程被 OOM Killer 杀死。

针对这种情况,您可以尝试以下几个方案:

  1. 调整 TiDB Lightning 的参数,以减少内存的占用。例如,可以尝试调整 sorter.memory-quota 参数,降低排序操作的内存占用。此外,您也可以尝试调整 tikv-importer.sorter.num-concurrent-worker 参数,降低并发排序的数量,从而减少内存的占用。
  2. 增加机器的内存。如果您的机器内存不足,可以考虑增加机器的内存,以满足 TiDB Lightning 进行数据导入时的内存需求。
  3. 将数据分批导入。如果您的数据量过大,可以考虑将数据分批导入,以减少单次导入时的内存占用。例如,可以将数据按照时间范围、表名等进行分批导入。

lightning必须跑在备份数据的机器上吧,可以找一些大内存的机器,但没法指定远程备份目录吧?

这二个参数怎么加入配置文件中呢,试了几种形式都说配置有误
memory-quota= “55G”
sorter.memory-quota= “55G”

还有这个 tikv-importer.sorter.num-concurrent-worker 怎么加进去

看着像是precheck都没过,OOM的图有吗,region-concurrency 默认是vc数量,应该占用不了这么多内存才对
还调整了其他参数吗

sort区空间够吗,这个日志打印的位置会预估data kvs和index kvs的整体大小

tidb-lightning.toml (1.4 KB)
这是整个配置文件,帮忙看看,
这是OOM日志:

sort区空间不太够,但是每次跑,都只是内存一直在涨,sort区有一些文件都很小啊,好像都还没开始用上sort区。

/dev/md0 131T 81T 44T 66% /data1

dump数据文件和sort区我都放在/data1了, 没有更大的磁盘了。

index-concurrency = 2
table-concurrency = 6
调整下试下,这台机器只部署了lightning吗,不知道这64G占用怎么来的,感觉不太合理,导出文件都拆分过了吗


只跑了lightning

这是dumpling导出的参数:
/root/tidb-toolkit-v5.4.2-linux-amd64/bin/dumpling -u xxx -p ‘xxx.com’ -P 3306 -h 10.117.17.57 --filetype sql --read-timeout=1h -t 16 -o /data1/tmp -r 200000 -F256MiB

换新版本的lightning导入试试,说不定碰到啥bug了

按楼上大佬说的换个lightning版本搞一下吧

修改了上面那二个参数后,又跑了几个钟了, 为什么排序目录sorted-kv-dir 还这么小,感觉没有用起来,就内存一直涨,lightning日志也从check datafile, 到了Sample source data。

这是开始时的lignhting日志:

还没有开始导数据,应该是表太多了,看发的日志还在做precheck

看看是这个 bug 么? https://github.com/pingcap/tidb/issues/39331