Ketika dataset membesar, backup yang tadinya mulus mulai lambat. Episode ini mengajarkan cara tuning: parameter chunker, level kompresi, dan caching files cache, ditambah strategi benchmark dedup & kecepatan, penanganan dataset TB-level, dan throttling dengan ionice/nice agar backup tidak mengganggu produksi.

Semua yang kita bangun sejauh ini mengasumsikan backup selesai dalam waktu wajar. Tetapi saat dataset tumbuh ke skala TB, bahkan di antara malam ke malam, hal-hal yang dulu terasa instan mulai melambat. Episode 18 mengubah kalian dari pengguna menjadi tuner: memahami tiga tuas utama performa — chunker, kompresi, dan caching — lalu mengeksekusinya dengan benchmark yang jujur.
Chunker menentukan ukuran chunk — dan ukuran ini memengaruhi keseimbangan dedup vs overhead:
Parameter default Borg adalah buzhash,19,23,21,4095: rata-rata 2 MiB per chunk. Untuk dataset tertentu kalian bisa menurunkan ukuran untuk dedup lebih agresif:
borg create --chunker-params buzhash,19,23,21,4095 --stats \
/backup/borg::"{hostname}-{now}" /homeAngka yang diturunkan (misal eksponen 20 → rata-rata 1 MiB) menambah granularitas dedup dengan biaya CPU. Ukur dulu — jangan mengganti parameter tanpa data.
Dari episode 6: lz4 cepat, zstd,10 seimbang. Di dataset besar, pemilihan level kompresi berpengaruh besar pada durasi backup — dan di sinilah trade-off terlihat paling nyata. Untuk host yang backup-nya menabrak jam sibuk, kompresi rendah lebih masuk akal daripada level ekstrem yang membuat pipeline melambat.
Borg menyimpan files cache lokal (di ~/.cache/borg) berisi metadata file + daftar chunk. Backup berikutnya membandingkan metadata (mtime, size, ctime, inode) dengan cache: file yang tidak berubah dilewati tanpa di-hash ulang — penghematan besar pada dataset yang sebagian besar statis.
Jangan memakai time mentah saja — ukur komponen secara terpisah:
time borg create --compression zstd,10 --stats \
/backup/borg::bench /var/lib/data
# jalankan ulang (semua data sudah ada) untuk mengukur kecepatan dedup
time borg create --compression zstd,10 --stats \
/backup/borg::bench-2 /var/lib/dataPembacaan penting dari dua run ini:
--stats memberi angka: New files, Unchanged files, Deduplicated size. Rasio Unchanged files yang tinggi menunjukkan cache efektif.
Catat durasi dan ukuran tiap backup ke log; lonjakan durasi tanpa perubahan data adalah tanda disk melemah atau eksklusi yang hilang (episode 12).
lz4 menghindari CPU terbuang.--buffer-size 1G untuk throughput tinggi di jaringan lambat atau disk jauh.Backup harus berjalan tanpa mematikan produksi. Turunkan prioritas I/O dan CPU:
ionice -c 3 nice -n 10 \
borg create --stats /backup/borg::"{hostname}-{now}" /homeionice -c 3 → I/O idle class: disk hanya dipakai saat tidak ada workload lain yang butuh.nice -n 10 → prioritas CPU lebih rendah dari proses normal.Untuk cgroup (systemd):
[Service]
Nice=10
IOSchedulingClass=idle
IOWeight=1ionice -c 3 dan nice / IOSchedulingClass=idle melindungi produksi.Di episode 19 kita melebarkan ekosistem: BorgWeb & Tools — GUI untuk mengelola repository, integrasi dengan borgmatic dan FUSE, koneksi ke monitoring klasik (nagios/zabbix) lewat wrapper, serta exporter metrik ke Prometheus.