Ubuntu

在兩個本地文件夾之間同步數百萬個文件的優雅方式

  • February 7, 2014

我想rsync每天將一個包含數百萬個文件的文件夾從本地目錄轉移到另一個目錄。文件本身很少更改。

我想減少對正在執行的伺服器的影響,例如 CPU 時間或 I/O,所以我使用下面的命令

nice -n19 ionice -c3 rsync -ac --delete /foo /backup/

但是,我發現它在執行rsync命令的過程中仍然會導致大量的 CPU 峰值和高 I/O 消耗。

有沒有更好的方法來完成我的目標?

您是否真的需要比較校驗和,而不僅僅是 m 日期,甚至只是文件的大小?

當你使用 -c

-c, --checksum              skip based on checksum, not mod-time & size

這意味著您需要讀取兩個文件系統上每個文件的全部內容。如果你關閉它並使用 mod-time 和 size,你只需要 stat 目錄。在這種情況下,我認為 bwlimit 選項不會有太大幫助,因為它控制 rsync 程序之間的速率,而不是文件 I/O 確定校驗和的速率。

引用自:https://serverfault.com/questions/573985