【回答】
rsync の性能を確認する一つの手順を紹介します。
100万個の小さいファイルを作成、それらを二つのサーバで同期させます。
(サーバA → サーバBとします)
その後サーバ Aに1個のファイルを追加後、rsync でサーバBに同期します。同期にかかる時間を測定します。
(1)
以下は100万個の小さいファイルを生成するスクリプトです。
これでサーバAに100万個のファイルを生成します。
----------------------------------------------------
while [[ $CNT -le 1000000 ]];
do
dd if=/dev/zero of=test_$CNT bs=10k count=1 > /dev/null 2>&1
CNT=`expr $CNT + 1`
done
exit 0
-----------------------------------------------------
(2)サーバBに同期します。サーバBのIPアドレス:10.0.0.1
#sync -a /test1 root@10.0.0.1:/test1
(3)サーバAにtest.txt を生成します。
#touch test.txt
(4)この状態で再度同期を実行します。
#sync -a /test1 root@10.0.0.1:/test1
テスト環境では rsyncは17秒で終了しました。パフォーマンスを確認しましたが、CPUはたいして消費されませんでした。
ちなみにこの100万個のファイルのディレクトリでの ls | wc -l は14秒でした。
多数のファイルが存在するディレクトリ間でのrsyncですが思ったほど時間がかからないようです。
(当然同期対象のファイルが多数ある場合は、そのファイルをコピーするのに要する時間がかかるため、結果も大きく変わってきます。)
(*)本ページは Redhat Enterprise Linux 6以後を想定しています。
最終更新日:2015/10/20
[Redhat Enterprise linux 6(EL) FAQ トップへ]
[FAQ CENTER トップ]