ticd同步报错,too many open files

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.3.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
任务卡住,报错如下
“code”: “CDC:ErrUnifiedSorterIOError”,
“message”: “[CDC:ErrUnifiedSorterIOError]unified sorter IO error. Make sure your sort-dir is configured correctly by passing a valid argument or toml file to cdc server, or if you use TiUP, review the settings in tiup cluster edit-config. Details: open /tmp/cdc_data/tmp/sorter/sort-14873-1274288.tmp: too many open files in system”
[tidb@ticdc-2 ~]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 123517
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1000000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 123517
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
我看了下/tmp/cdc_data/tmp/sorter目录下sort-14873开头的文件有8万多个了,
请问可有遇到这个问题的,该如何解?

通过ulimit -a查看当前系统配置是多少,如果不够用通过ulimit -HSn 数字 增加一下,或者直接修改文件 limits.conf

open files (-n) 1000000

把tmp文件删除 重新同步

请问把这些tmp删除重新同步是从卡的地方重新同步是吗?
是什么原因导致的呢。
ticd之前同步是好的,今早4点卡住了

如果你确定在cdc启动前open file就是那么大的话,那大概率就是bug,搜索了下,是有类似的bug,高版本都已解决了:
https://github.com/pingcap/tiflow/issues/2698
https://github.com/pingcap/tiflow/issues/3303
鉴于你TiDB版本比较低,建议你尽快升级到最新LTS版本

1 个赞


这是当时的日志,表里数据最后同步时间卡在04:08分。但是看cdc.log当时日志没有重要error提示呢。

查下上下游是否有 DDL 变更,这个会导致卡住…

如果有这个情况,建议手动处理下,重新开启同步

看上去在v5.4.1版本已经修复了,可以升级验证一下。

This problem has been solved by dbsorter, which is enabled by default from 6.0 onward. It is also available on 5.4.1, which satisfies the needs of the cloud. So I’m closing this issue.

第二个issues里目测就是在v5.3修复的,不过没有明确是哪个小版本。

ti-chi-bot merged commit 865d357 into pingcap:release-5.3 on Nov 10, 2021

2 个赞

是不是系统里的too many open files 限制了,设置成20万试试呢 ulimit -a 查看下

改系统配置文件,调整打开文件数;或者是升级到新牌本的TiDB

应该是bug问题,因为参数设置成65536时已经满足了

文件句柄太多了

65536都能超掉?是真实用了这么多么?还是bug

安装部署,tiup应该会自动设置这些参数的把

没用这么多,安装时系统参数优化时设置的,这个参数已经够用了

你数据库表有这么多吗

目前定位到什么问题了吗?

感觉tidb芮苒很看好,但是bug确实多啊

不是我问的,你可以问下博主