rsync 壓縮參數的大概測試心得

昨天意外發現 rsync 有 -z 的參數, 可以壓縮再傳。好奇它的效果就試了一下, 結果得到出人意外的結論: 有時候直接全部重新複製還比較快........, 雖然是很明顯的事實, 用慣 rsync 後到沒想到這點。

簡易的測試環境如下:
  • 原始檔案: 一堆目錄合起來 7G 左右放在 A 機器
  • 目標檔案: 另一台機器放著很久以前的版本, 6G 左右, 至少有 1G 的差異
  • gigabyte 網路
簡易的測試結果如下:

用 rsync -av --delete 跨機器傳8m
加上 -z超過 13m, 我等不下去, 就停了
用 rsync 在目的機器產生新目錄, 不 diff2m54s
用 rsync -z 在目的機器產生新目錄, 不 diff超過 6m, 我等不下去, 就停了
scp2m47s

懶得測傳說中最快的 nc + compression, 有興趣的人可以看看《High performance MySQL 2e》 Appendix A, 有多種不同組合的測試數據。

在傳輸過程中用 iostat -dx 觀察兩台機器的 utility rate 和用 htop 看 rsync 的 CPU 使用狀態, 就可以明白加 compression 應該不會有好下場。不加前就是 IO rate 低, CPU 100%; 加 -z 後變成 IO rate 更低, CPU 當然還是 100%。

留言

  1. 預設 --delete 是 --delete-before。若用 --del(--delete-during 的 alias)會不會比較快?

    回覆刪除
  2. 我沒實測過, 我猜應該沒有差別, 瓶頸應該不是這裡, 而是想辦法比較兩個二進位大檔案吧

    回覆刪除

張貼留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置