it-swarm-ja.com

あるディスクから別のディスクへのrsyncスローコピー

SATAを使用して接続された同じモデルの2つのドライブを入手しました。

hdparm -t /dev/sdXを使用して読み取り速度をベンチマークすると、約160MB/sの速度が返されます。 dd if=/dev/zero of=testfile bs=1M count=500 conv=fdatasyncを使用して書き込み速度をベンチマークすると、約140MB/sの速度が返されます。

ただし、rsync --progress /mnt/hd1/file /mnt/hd2/fileを使用して単一の10GBファイルをコピーする場合、書き込み速度は約35MB/sのみです。

なんでこんなに遅いの?どうすれば速くできますか?

4
Zulakis

この問題の調査中に見つけた多くのサイト(たとえば this one)によると、rsyncのボトルネックは通常CPUパワーであるため、これは正常です。

Ddとcpの結果は、最初にベンチマークした速度に近かった。 2,2Ghzデュアルコアはhdd-speedrsyncには十分ではないようです。

さらなる調査中に、私は this についても知りました:

正解です。rsyncには、転送後のチェックサムを完全に無効にするオプションがありません。ファイル全体ではなく、追加された部分に転送後のチェックサムを制限するオプション--trust-appendを追加するパッチをrsync2.6.9に実装しました。パッチが添付されています。これで十分ですが、チェックサムを完全に無効にしたい場合は、match.cとreceiver.cの残りのsum_update呼び出しをコメントアウトしてください。

Rsyncは常にファイル全体をチェックサムしますが、これにはかなりの時間がかかります。上記のパッチを使用して、rsyncの速度を約90MB /秒に上げることができました。まだ素晴らしいとは言えませんが、以前よりはるかに良くなっています。残念ながら、パッチはrsync-trunkに組み込まれていません。

7
Zulakis

私は(Linuxで)まったく同じ問題を抱えていました。つまり、35BM/sです。

RsyncはCPUにバインドされており、cpuオンデマンドガバナーをトリガーしないため、CPUは最も遅い速度(私の場合は800MHz対3000MHz)でスタックしていることがわかります

次を使用してテストできます。

cat/proc/cpuinfo | grep MHz

修正は、CPUガバナーを調整することです。

エコー「70」>/sys/devices/system/cpu/cpufreq/ondemand/up_threshold

永続的にするには、/ etc /rc.localに配置します

説明については、を参照してください: http://random-linux-stuff.blogspot.co.nz/2013/01/boost-performance-of-ondemand-cpu.html

4
jfp