使用 Backup 进行备份,我们的 OSS 对带宽和 QPS 均有限制,最近发现 CompleteMultipartUpload 也有单独的 QPS 限制,超过会报错导致备份失败。当前是只能调整 ratelimit 来近似地限制 QPS,但是阻拦的效果很有限,不一定能成功。有没有大佬有遇到过类似的场景或者有好的方案的,拜谢
【TiDB 使用环境】生产环境
【TiDB 版本】
【部署方式】k8s
使用 Backup 进行备份,我们的 OSS 对带宽和 QPS 均有限制,最近发现 CompleteMultipartUpload 也有单独的 QPS 限制,超过会报错导致备份失败。当前是只能调整 ratelimit 来近似地限制 QPS,但是阻拦的效果很有限,不一定能成功。有没有大佬有遇到过类似的场景或者有好的方案的,拜谢
【TiDB 使用环境】生产环境
【TiDB 版本】
【部署方式】k8s
api 调用次数? 报错会重试,s3 上限应该很高
有备份流量控制参数吗,CompleteMultipartUpload这个参数没见过啊
显示备份时的数据导出qps吗?还是限制备份到远程仓库的传输速率?
准确来讲是限制 CompleteMultipartUpload 的 QPS 来避免 OSS 报错
类似情况内部有讨论过,初步结论,AI 总结:
backup.s3-multi-part-size 设置为 256MiB,避免通过 Multipart Upload API 上传备份文件,减少 CompleteMultipartUpload 的请求数量multi_part_size 可配置(解决原 5MB split size 生成过多请求的问题),并添加了备份 S3 存储的 metrics 以监控 QPS;长期计划将实现 流量控制器 ,自动控制请求不超过云厂商的带宽和 QPS 限制,替代手动调整参数backup.enable-auto-tune = false 、backup.num_threads = 1 与ratelimit 限速(如ratelimit = 10 时),降低备份对 OSS 的 QPS 压力暂时没有这个安排
在后端配置api调用次数,或者中间用nginx限制访问
不是很了解,学习下
调整 BR 的 --chunk-size(增大)和 --concurrency(降低),从根源减少 CompleteMultipartUpload 调用次数,无需代码改造,快速生效
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。