跳到主要内容

解决小文件众多的 S3 存储桶列表与同步缓慢问题 — 使用 RcloneView 调优

· 阅读需 4 分钟
Morgan
Staff Engineer

拥有数十万个小文件的存储桶同步缓慢,原因是每个对象的开销而非带宽,几项任务设置即可改善。

摄影师的代理文件夹或应用程序的日志归档可能包含海量的小对象。每个对象都需要列表条目、比较和请求,因此即使网络空闲,同步也会很慢。RcloneView 在任务向导中提供了相关的 rclone 设置,无需手写参数即可调整。S3、Azure 或 Backblaze B2 在 FREE 许可证下即可完整读写连接。

RcloneView 应用预览

在一个地方管理和同步所有云端

RcloneView 是 rclone 的跨平台 GUI。通过清爽的可视化界面比较文件夹、传输或同步文件,并自动化多云工作流。

  • 一键作业:复制 · 同步 · 比较
  • 调度器与历史记录,实现可靠的自动化
  • 支持 Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTP 等
WindowsmacOSLinux
免费开始使用 →

核心功能免费。Plus 提供自动化功能。

为什么小文件很慢​

对于大文件,吞吐量起主导作用。对于小文件,请求数量起主导作用:每个对象都要被列出、按大小、时间或校验和比较,并单独上传。这里的缓慢通常源于单次请求延迟和提供商侧的速率限制,因此增加带宽毫无作用。

显示文件数量和速度的 Transferring 选项卡

运行期间打开 Transferring 选项卡。如果速度较低但文件数稳步增长,说明瓶颈在请求数量而非带宽。

调整任务设置​

在同步向导的第 2 步中,提高文件传输数量可让更多对象并行移动。equality checkers 默认值为 8;在缓慢或被限流的后端上,建议使用 4 或更少,因为同时检查过多可能触发限流,使情况更糟。每次只修改一个值,然后重新运行。

传输数和检查器的任务高级设置

启用校验和比较会在大小检查之外增加哈希计算,因此仅在完整性比速度更重要时使用。将重试设置保持为默认值 3,以免临时错误中断长时间运行的任务。

缩减工作量​

第 3 步的过滤器可减轻列表负载。使用最大文件时长跳过旧对象,排除不需要的文件夹,并使用预定义过滤器排除某些文件类型。将一个庞大的任务拆分为按前缀划分的任务,也更便于隔离故障并重新运行。

在 RcloneView 中运行调优后的同步任务

更改过滤器后,请务必运行 Dry Run,以便在正式运行前准确查看哪些文件将被复制或删除。

开始使用​

  1. 从 rcloneview.com 下载 RcloneView。
  2. 打开缓慢的任务,观察 Transferring 选项卡,确认瓶颈在于请求数量。
  3. 逐一调整传输数和检查器,并添加过滤器以缩小范围。
  4. 在 Job History 中比较耗时,保留表现最佳的设置。

小而有条理的改动,可以让通宵的同步变成日常任务。


相关指南:

支持的云服务商

Local Files
WebDAV
FTP
SFTP
HTTP
SMB / CIFS
Google Drive
Google Photos
Google Cloud Storage
OneDrive
Dropbox
Box
MS Azure Blob
MS File Storage
S3 Compatible
Amazon S3
pCloud
Wasabi
Mega
Backblaze B2
Cloudflare R2
Alibaba OSS
Ceph
Swift (OpenStack)
IBM Cloud Object Storage
Oracle Cloud Object Storage
IDrive e2
MinIO
Storj
DigitalOcean Spaces