dragon3の日記 このページをアンテナに追加 RSSフィード Twitter

2009-04-12

[] rsync の block size デフォルト値はなぜ 700 byte なのか? 23:05  rsync の block size デフォルト値はなぜ 700 byte なのか?を含むブックマーク

rsyncの文献「The rsync algorithm」にヒントがありました。

We have found that values of S between 500 and 1000 are quite good for most purposes.

http://rsync.samba.org/tech_report/footnode.html#foot10


多くの場合ではデフォルトの block size でそれなりに良いパフォーマンスが得られるのでしょうね。


この文献では Linux kernel の2バージョン(1.99.10 と 2.0.0)のソースアーカイブを
このアルゴリズムの検証に利用していました。


ソースアーカイブは24MBほどのサイズで、block size が 300 から 1100 で比較していました。
http://rsync.samba.org/tech_report/node6.html


ちなみに、なぜこれが気になったかと言うと、100GB近くあるとても大きいサイズのファイルをrsyncでコピー(同期)する際に
デフォルト値だとものすごい数のブロックになり、チェックサムの計算回数も多いし、どうなんだろうか?と思ったからです。


このような大きいファイルの場合は、やや大きめのブロックサイズを指定してあげると速そうでした。


また、id:kazuhooku さんの blockdiff は ブロックサイズ 16384 になっていたり、
チェックサムデータを保存できるようになっていたりして良さそうですね。
試してみようと思います。
http://labs.cybozu.co.jp/blog/kazuho/archives/2008/05/blockdiff.php


rsyncにもチェックサムデータを保存・利用できる機能があるといいですね。

yukobayukoba 2011/03/25 15:39 この記事を書かれた頃と変わっているのかもしれませんが、
Ver 3.0.7現在、おおよそ、block size = sqrt(file size) で、最小ブロックサイズが700ですよ。

dragon3dragon3 2011/03/25 19:55 ありがとうございます。ソースをあらためて確認したら、
確かに最小ブロックサイズが700ってことで、デフォルトではないですね。
ありがとうございます〜

トラックバック - http://d.hatena.ne.jp/dragon3/20090412/1239545139
Connection: close