Ist eine deduplizierung nicht sehr RAM lastig?
Wirklich RAM- und CPU-lastig sind Deduplikationen nur bei sliding-window und variable-size Backups weil er ständig überprüfen muss ob ein Block passen könnte.
Meine Implementierung verwendet "nur" statische Blockgrössen so dass der Verbrauch lediglich linear ansteigt in Relation zur Grösse des Datastore. Aktuell im Einsatz ist eine 64bit-lange Hashfunktion was die Match-Probabilität bei jeweils getrennten Datastores pro VPS ausreichend vernachlässigbar hält und einen RAM-Verbrauch im MB-Bereich erreicht.
Der Read Cache ist in vielen Fällen höher als der RAM-Verbrauch, genaue Werte für grosse VM's kann ich aber aus dem Produktivbetrieb nicht nennen da es fast ausschliesslich für kleinere VPS (80GB-100GB) eingesetzt wird. Andere Forenteilnehmer haben aber ähnliche Deduplikation im Einsatz wenngleich noch auf Server- und nicht Clientseite, ggf kann der ja konkrete Zahlen zu grossen VM's nennen.
Beispiel in Bezug auf Speichereffizienz mit einem kleinen VPS mit hoher Datenaktivität.
Anmerkung:
- 3 Vhosts backupen gleichzeitig
- Backupserver hat 1000Mbit/s Anbindung
- es wird immer nur 1 geänderter Block gleichzeitig übertragen, aber aufeinanderfolgende bekannte Blöcke gleichzeitig
- Verbindung erfolgt SSL-verschlüsselt
Backup:
- 81920 MB VPS Grösse, rund 40GB aktiv genutzt
- Blocksize 1MB
- Aktuell 72 tägliche Backups vorrätig
- 349 Sekunden Backupdauer (Schnitt über 5 Backups)
- 42GB Datastore für alle Backups zusammen
- 65395 unterschiedliche Blöcke
Vergleich von 2 aufeinanderfolgenden Backups:
- zwischen 200 und 500 neue Blöcke pro Tag