將新檔案新增至備份時,rdiff-backup 非常慢

將新檔案新增至備份時,rdiff-backup 非常慢

為了備份我的數據,我rdiff-backup在 Ubuntu 20.10 上使用 (2.0.5)。資料量僅 127 GB,但有 80k 個檔案/17k 個資料夾(主要是原始碼儲存庫、照片)。

我發現的問題是,新增檔案時 rdiff-backup 似乎非常慢。我編寫了一個 bash 腳本來演示這一點(見下文)。

該腳本的作用是:

  • 產生1000個空文件
  • 進行初始備份
  • 另外產生1000個空文件
  • 再做一次備份

第一次備份大約需要 1 秒,而第二次備份則需要 7 秒(詳細結果如下)。這聽起來並不多,但根據我的現實生活數據,我最終花了幾個小時來處理很少的新文件。

讓我困惑的是,只有「真實」的時間似乎才會爆炸。 rdiff-backup 是否會被其他進程卡住?

我在內部 ext4 SATA SSD 上運行該範例。

腳本:

#!/bin/bash
mkdir src
mkdir dest

files=1000

printf "Creating some dummy files.\n"
for (( i=1; i<=$files; i++ ))
do
    touch "src/$i.txt"
done

printf "First run."
time rdiff-backup src/ dest/
printf "\n"
sleep 1

printf "Second run, nothing changed."
time rdiff-backup src/ dest/
printf "\n"
sleep 1

printf "Creating some more dummy files.\n"
for (( i=$files+1; i<=$files*2; i++ ))
do
    touch "src/$i.txt"
done

printf "Third run, adding new files to backup."
time rdiff-backup src/ dest/
printf "\n"
sleep 1

printf "Forth run, nothing changed."
time rdiff-backup src/ dest/

輸出:

Creating some dummy files.
First run.
real    0m1,076s
user    0m0,869s
sys     0m0,157s

Second run, nothing changed.
real    0m0,511s
user    0m0,419s
sys     0m0,037s

Creating some more dummy files.
Third run, adding new files to backup.
real    0m7,460s       <--- 7 times longer!
user    0m1,374s
sys     0m0,310s

Forth run, nothing changed.
real    0m0,747s    
user    0m0,645s
sys     0m0,053s

相關內容