Backup 备份如何限制 QPS

使用 Backup 进行备份,我们的 OSS 对带宽和 QPS 均有限制,最近发现 CompleteMultipartUpload 也有单独的 QPS 限制,超过会报错导致备份失败。当前是只能调整 ratelimit 来近似地限制 QPS,但是阻拦的效果很有限,不一定能成功。有没有大佬有遇到过类似的场景或者有好的方案的,拜谢

【TiDB 使用环境】生产环境
【TiDB 版本】
【部署方式】k8s

api 调用次数? 报错会重试,s3 上限应该很高

1 个赞

有备份流量控制参数吗,CompleteMultipartUpload这个参数没见过啊

s3-multi-part-size

可以关注下这个参数,不过高版本已经废弃了。

显示备份时的数据导出qps吗?还是限制备份到远程仓库的传输速率?

准确来讲是限制 CompleteMultipartUpload 的 QPS 来避免 OSS 报错

类似情况内部有讨论过,初步结论,AI 总结:

  1. 将 TiKV 配置项backup.s3-multi-part-size 设置为 256MiB,避免通过 Multipart Upload API 上传备份文件,减少 CompleteMultipartUpload 的请求数量
  2. :BR 的修复已支持multi_part_size 可配置(解决原 5MB split size 生成过多请求的问题),并添加了备份 S3 存储的 metrics 以监控 QPS;长期计划将实现 流量控制器 ,自动控制请求不超过云厂商的带宽和 QPS 限制,替代手动调整参数
  3. 缓解方案 :结合backup.enable-auto-tune = falsebackup.num_threads = 1ratelimit 限速(如ratelimit = 10 时),降低备份对 OSS 的 QPS 压力

暂时没有这个安排

在后端配置api调用次数,或者中间用nginx限制访问

不是很了解,学习下

调整 BR 的 --chunk-size(增大)和 --concurrency(降低),从根源减少 CompleteMultipartUpload 调用次数,无需代码改造,快速生效

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