rdiff-backup ist furchtbar langsam, wenn neue Dateien zum Backup hinzugefügt werden

rdiff-backup ist furchtbar langsam, wenn neue Dateien zum Backup hinzugefügt werden

Zum Sichern meiner Daten verwende ich rdiff-backup(2.0.5) unter Ubuntu 20.10. Die Datenmenge beträgt nur 127 GB, aber 80.000 Dateien / 17.000 Ordner (hauptsächlich Quellcode-Repositories, Fotos).

Das Problem, das ich entdeckt habe, ist, dass rdiff-backup beim Hinzufügen neuer Dateien furchtbar langsam zu sein scheint. Ich habe ein Bash-Skript geschrieben, um das zu demonstrieren (siehe unten).

Das Skript macht Folgendes:

  • 1000 leere Dateien generieren
  • Erstes Backup durchführen
  • Erzeugen Sie weitere 1000 leere Dateien
  • Machen Sie ein weiteres Backup

Während das erste Backup etwa 1 Sekunde dauert, dauert das zweite 7 Sekunden (detaillierte Ergebnisse unten). Das klingt nicht viel, aber bei meinen realen Daten brauche ich mehrere Stunden für sehr wenige neue Dateien.

Was mich wundert ist, dass nur die "echte" Zeit zu explodieren scheint. Bleibt rdiff-backup mit anderen Prozessen hängen?

Ich führe das Beispiel auf einer internen ext4-SATA-SSD aus.

Skript:

#!/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/

Ausgabe:

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

verwandte Informationen