小さなファイルが多いS3バケットの一覧取得と同期が遅い問題を解決 — RcloneViewでチューニング
数十万の小さなファイルがあるバケットの同期が遅いのは、帯域幅ではなくオブジェクトごとのオーバーヘッドが原因であり、いくつかのジョブ設定で改善できます。
写真家のプロキシフォルダーやアプリケーションのログアーカイブには、非常に多くの小さなオブジェクトが含まれることがあります。各オブジェクトに一覧エントリ、比較、リクエストが必要なため、ネットワークに余裕があっても同期は遅くなります。RcloneViewはジョブウィザードで関連するrcloneの設定を提供するため、フラグを書かずに調整できます。S3、Azure、Backblaze B2はFREEライセンスで読み取り/書き込みの両方が可能です。

すべてのクラウドを一か所で管理・同期
RcloneViewはrcloneのクロスプラットフォームGUIです。フォルダを比較し、ファイルを転送・同期し、クリーンなビジュアルインターフェースでマルチクラウドのワークフローを自動化できます。
- ワンクリック操作: コピー · 同期 · 比較
- 信頼性の高い自動化のためのスケジューラーと履歴
- Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTPなどに対応
コア機能は無料。Plusで自動化機能を利用可能。
小さなファイルが遅い理由
大きなファイルではスループットが支配的です。小さなファイルではリクエスト数が支配的です。すべてのオブジェクトが一覧表示され、サイズ・時刻・チェックサムで比較され、個別にアップロードされます。この場合の遅さは、多くはリクエストごとのレイテンシとプロバイダー側のレート制 限が原因であるため、帯域を増やしても効果はありません。
実行中にTransferringタブを開いてください。速度は低いのにファイル数が着実に増えている場合、帯域幅ではなくリクエスト数がボトルネックです。
ジョブ設定の調整
同期ウィザードのステップ2で、ファイル転送数を増やすと、より多くのオブジェクトが並列で移動します。equality checkersの既定値は8ですが、遅い、またはスロットリングされるバックエンドでは4以下を使うのが推奨です。同時チェックが多すぎるとスロットリングが発生し、状況が悪化する可能性があるためです。一度に1つの値だけを変更して再実行してください。
チェックサム比較を有効にすると、サイズ確認に加えてハッシュ計算が必要になるため、速度より整合性が重要な場合にのみ使用してください。一時的なエラーで長時間のジョブが中断されないよう、再試行設定は既定値の3のままにしてください。
作業量を減らす
ステップ3の フィルターは一覧取得の負荷を減らします。最大ファイル経過時間で古いオブジェクトをスキップし、不要なフォルダーを除外し、定義済みフィルターで特定のファイル形式を除外します。巨大なジョブ1つをプレフィックスごとのジョブに分割すると、失敗の切り分けと再実行も容易になります。
フィルターを変更したら、必ずDry Runを実行し、本番の実行前にどのファイルがコピーまたは削除されるかを正確に確認してください。
はじめに
- rcloneview.comからRcloneViewをダウンロードします。
- 遅いジョブを開き、Transferringタブでリクエスト数がボトルネックか確認します。
- 転送数とチェッカーを一つずつ調整し、フィルターを追加して範囲を絞ります。
- Job Historyで所要時間を比較し、最も良い設定を維持します。
小さく着実な変更が、一晩かかっていた同期を日常的な作業に変えてくれます。
関連ガイド: