web-dev-qa-db-ja.com

nfs-shareからローカルディレクトリにファイルをコピーする場合、cpと比較してrsyncが非常に遅い(係数8〜10)

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

使用:

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

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

使用する

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

bmonは最初の数秒間にいくつかのパケットを表示し、約30秒間停止し、その後最大で約60〜75 MiB /秒を構築します。 CPUは約60%です。

rsyncと同じパフォーマンスでcpを使用するために何を変更する必要がありますか?

19
soulpath

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

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

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

15
msw

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

あなたはこれを行うこの小さくてシンプルなシンクロナイザーに興味があるかもしれません: Fitus/Zaloha.sh

次のように使用されます。

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

分析フェーズの速度を最大にするには、復元スクリプトの生成をスキップすることができます。オプション--noRestoreを使用してください。さらに、高速mawkがインストールされている場合は、オプション--mawkを指定して使用します。

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

0
Petas