rsync は、nfs 共有からローカル ディレクトリにファイルをコピーする場合、cp に比べて非常に遅い (8 ~ 10 倍)

rsync は、nfs 共有からローカル ディレクトリにファイルをコピーする場合、cp に比べて非常に遅い (8 ~ 10 倍)

新しくインストールした Ubuntu サーバーがあり、これは VM ストレージの新しいバックアップ サーバーになるはずです。サーバーには 4 つの NIC があり、そのうち 2 つは 10Gbit (実際は最新のドライバーが利用可能な Intel x540-T2) で、SAN への接続に使用されます。NFS 共有をローカルにマウントし、約 30 個のファイル、約 15 個の VM イメージ、および対応するログ ファイルを含むディレクトリをコピーする際の速度の違いを比較しました。イメージのサイズは 8 GB から 600 GB です。

使用方法:

cp -rf /mnt/nfs-share /backup-storage/

その結果、bmon は約 600 MiB/s を示します。

使用

rsync -av /mnt/nfs-share /backup-storage/

bmon は最初の数秒間にいくつかのパケットを表示し、約 30 秒間停止した後、約 60 ~ 75 MiB/s まで増加します。CPU は約 60% です。

rsyncと同じパフォーマンスで使用するには何を変更すればよいですかcp?

答え1

cpとの間には、これらの違いがかなり明確に存在していると思いますrsync。次のタイトルの記事を参考としてご覧ください。rsync のパフォーマンスを見る

抜粋:
The four commands tested were:

    rsync $SRC $DEST
    echo $SRC | cpio -p $DEST
    cp  $SRC $DEST
    cat $SRC > $DEST/$SRC

The results for rsync, cpio, cp, and cat were:

user    sys     elapsed hog MiB/s   test
5.24    77.92   101.86  81% 100.53  cpio
0.85    53.77   101.12  54% 101.27  cp
1.73    59.47   100.84  60% 101.55  cat
139.69  93.50   280.40  83% 36.52   rsync

毎日使用していますrsync。状況を改善するためにできることがいくつかあります。

たとえば、次の-Wスイッチを使用してみてください:

-W, --whole-file            copy files whole (w/o delta-xfer algorithm)

また、 の 3.x バージョンがインストールされていることを確認することをお勧めしますrsync。新しいバージョンに移行すると、顕著な改善が見られました。

答え2

rsync を cp と同じパフォーマンスにするには、「cp」と綴ります。

最終的な効果は同じかもしれませんが、2 つのコマンドの違いは重要です。特に、rsync は、ファイルまたはファイルの一部をコピーする必要があるかどうかを確認するために大量の読み取りを実行します。

rsync を使用する理由があるのでしょうか? cp は「盲目的に」コピーするため、生のパフォーマンスが向上します。一連のトリガー条件で rsync の「デルタ転送」メカニズムを使用すると、転送速度が低下し、CPU 使用率が報告どおりに上昇します。

答え3

このユースケースでは、rsyncは不必要に複雑なマシンです。ファイルの変更時刻とファイル サイズの比較に基づく同期で問題ない場合は、両端でファイル システムのメタデータのみを収集して比較し、変更された (または新しい) ファイルを (ローカル) コマンドでコピーする必要がありますcp

次のことを実行する、小さくてシンプルなシンクロナイザーに興味があるかもしれません:フィタス/ザロハ.sh

以下のように使用します。

$ Zaloha.sh --sourceDir="test_source" --backupDir="test_backup"

分析フェーズの速度を最大化するには、復元スクリプトの生成をスキップする必要があります。オプションを使用します。--noRestoreまた、高速がmawkインストールされている場合は、--mawkそれを使用するオプションを指定します。

Zaloha.shコマンドを介してファイルシステムのメタデータを収集します。 残る 1 つの質問は、NFS 共有でのfindパフォーマンスについてです...find

関連情報