rsyncは、nfs-shareからローカルdirにファイルをコピーする際のcpと比較して非常に遅い(係数8〜10)


17

新しくインストールしたUbuntuサーバーは、VMストレージの新しいバックアップサーバーになるはずです。サーバーには4つのNICがあり、そのうち2つは10Gbit(実際には最新のドライバーを備えたIntel x540-T2)であり、SANへの接続に使用されます。nfs-shareをローカルにマウントし、約30個のファイル、約15個のvm-imagesおよび対応するログファイルを含むディレクトリをコピーしながら、速度の違いを比較しました。画像のサイズは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ますか?

回答:


20

これらの違いは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。新しいバージョンに移行すると、顕著な改善が見られました。


15

rsyncにcpと同じパフォーマンスを持たせる方法は、「c​​p」と綴ることです。

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

rsyncを使用したい理由はありますか?cpは「ブラインド」でコピーするため、より高いパフォーマンスが得られます。一連のトリガー条件に対して、rsyncの「デルタ転送」メカニズムを使用すると、レポートする方法で転送速度が低下し、CPU使用率が大幅に上昇することがわかります。


私はその挙動を知っていますが、そのような効果は期待していませんでした。CPU-PowerとIOPSのrsyncは、コピーするファイルが存在しない場合は特に、少なくとも300 MiB / sで実行する必要があると考えました。私はまだテストを終えていません。rsyncを使用したバックアップはより便利ですが、cp、dd、または思い浮かぶものを使用してスクリプトを作成することもできます。次に、さまざまなファイルシステムでさまざまな可能性をテストして、最適なものを評価したいと思います。
ソウルパス

6
あなたは私を経験主義者と呼ぶかもしれませんが、あなたの期待と現実が合わないとき、間違っているのは通常現実ではありません。このペナルティが発生する可能性のある理由は多数あります。SANで読み取りと書き込みをインターリーブしても、ソフトウェアの詳細によっては劇的なパフォーマンスヒットが発生する可能性があります。
msw

3
rsyncについては現実に疑問はありませんでしたが、これらの違いのために、cpといくつかのチェックサムを使用してスクリプトを記述します。助言ありがとう!
ソウルパス

いいえ、ネットワークファイルシステムでrsyncを使用しないでください。コンピューターはファイル全体をダウンロードする必要があるため、rsyncの利点をすべて失います。
ジャコモカテナッツィ16

悲しいことに、この答えはその詳細が間違っています。「ローカル」ファイルシステム間でコピーする場合(そして、このコンテキストではNFSマウントはローカルファイルシステムです)、でこの逆効果な操作を明示的に有効にしない限り、コピー時にrsync ターゲットファイルを読み取りません--whole-file。この状況では、非常に遅いようcpです。
ロアイマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.