【 TiDB 使用环境】测试环境
【 TiDB 版本】6.1
【遇到的问题】lightning 导入数据 OOM
【复现路径】做过哪些操作出现的问题
内存足够,为什么会报OOM,是go语言的问题?
文件大小也没问题
【 TiDB 使用环境】测试环境
【 TiDB 版本】6.1
【遇到的问题】lightning 导入数据 OOM
【复现路径】做过哪些操作出现的问题
内存足够,为什么会报OOM,是go语言的问题?
文件大小也没问题
限制一下并发数试试
是修改
index-concurrency = 2
table-concurrency = 6
这两个参数嘛?
还有一个 io-concurrency,oom 确实不太常见,能发下机器的配置合数据集大小吗
看起来并发数可能不是导致 oom 的原因,可以在下次导入的时候试一下用 pprof 工具看一下内存的使用情况:
go tool pprof -inuse_space localhost:<status-port>/debug/pprof/heap
status-port 在 lightning 的配置文件里面设置(只有设置了才会开启 pprof)。
–注意设置 region-concurrency
导入大量数据时,一个并发对内存的占用在 2 GiB 左右,也就是说总内存占用最大可达到 region-concurrency * 2 GiB。region-concurrency 默认与逻辑 CPU 的数量相同。如果内存的大小(GiB)小于逻辑 CPU 数量的两倍或运行时出现 OOM,需要手动调低 region-concurrency 参数以避免 TiDB Lightning OOM。
看一下你得cpu,如果不限制这个参数,lighting使用的总内存就是cpu x 2G,如果超过15GB,就需要限制了,最好控制cpu x 2G是总内存的70%