mydumper多线程导出,tidb的连接数还是1

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

  • 【TiDB 版本】:3.0.9
  • 【问题描述】: mydumper多线程导出,tidb的连接数还是1

mydumper 指定线程数 -t 8 或者别的值,但是tidb节点显示连接数还是1,这个并发备份体现在哪里呢?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

我在我这边测试是正常的,mydumper 版本 0.9.5

image

tidb-server 前端有挂载负载均衡吗,集群有几个 tidb-server?

有配置slb,连得是slb的地址 命令是 ./bin/mydumper -h slb-ip -P 4000 -u root -a -t 16 -F 64 -B test -T sbtest1 --skip-tz-utc -o /data/backup/tidb_test_sbtest1

./bin/mydumper -V mydumper 0.9.5 (ba3946edc087e87bba7cb2728bc2407f6dbd0a8b), built against MySQL 5.7.24

监控里面tidb的连接数是1

mydumper 的线程粒度是针对表的,每张表一个连接,可以尝试同时备份多个表,看下连接数情况。

上面单表备份我用的切分是-F ,当我用-r 就能实现单表内的并发,-t就起作用力。这两个参数 一个从文件大小 一个按行数来划分,哪个性能比较好?推荐用哪一个呢

-r 选项是 TiDB 在原先 mydumper 的基础上根据 TiDB 的隐藏列 _tidb_rowid 对单表内并发导出进行的优化, Mydumper 首先计算 min(_tidb_rowid)max(_tidb_rowid) ,然后按照 -r 设定的值对表划分 chunks,将 chunks 分配到不同线程并发导出。

设置了 -r 选项之后,mydumper 会忽略 --chunk-filesize 选项。

TiDB 对于没有主键或者主键为非 int 类型的表,会生成隐藏列 _tidb_rowid ,所以对于该类表,使用 -r 选项会更优效果。具体可以进行测试对比一下。