使用抽数工具将数据抽到hive的时候 tidb OOM

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

系统版本 centos 7.5 内核 3.10.0-862.el7.x86_64

  • 【TiDB 版本】:v3.0.0 alpha
  • 【问题描述】: 将tidb中 400G大表迁移到hive中,出现oom的现象

迁移方式:对tidb进行全表扫描然后将数据存放到一个文本中(单条sql,没有并发)

tidb服务器内存256G,并且 mem-quota-query设置为32G,但是为什么设置了这个参数完全没有用?sql也不会被kill掉,超过32G的数据还是会缓存在tidb服务器的内存中? 并且最后oom

确认一下 oom action 动作是是否为预期的取消操作 。https://pingcap.com/docs-cn/stable/reference/configuration/tidb-server/configuration-file/#oom-action

谢谢回答 请问一下,如果这个参数是log 那mem-quota-query参数就没有用了吗?

相当于一个阀值,一个是根据阀值触发的动作的概念。

ok 了解 还有一个问题 ,目前这种大表的全表扫描的话 ,只有cancel和最终oom的两种结果吗? 有没有像mysql一样 net_buffer之类的机制

目前没有,另外处理全表的操作,尽量先评估好,另外可以拆分数据导入,最好分批操作。

好的 谢谢答复

有问题欢迎在提问

1 个赞

一样的需求,现在我使用足够大内存的tidb-server外加修改streaming为true缓解的,不过偶尔还是会oom;不过大体能用,sqoop抽取的tidb-server跟app用的分开就好。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。