Dataset TB-level mengubah cara kerja backup: bottleneck bergeser dari ruang ke waktu dan bandwidth. Episode ini mengoptimalkan restic dengan `--read-concurrency`, network buffer, dan caching (`--cache-dir`), melakukan benchmark dedup rate, serta merancang pola untuk banyak host menuju satu server.

Sejauh ini kalian berlatih dengan dataset kecil. Episode 18 berbicara soal skala: saat data mencapai TB-level, atau 50 host membackup ke satu server, aturan mainnya berubah. Backup bukan lagi soal "jalan atau tidak", tapi soal "berapa lama dan berapa murah".
Kuncinya bukan mengotak-atik asal-asalan, tapi memahami di mana bottleneck berada: CPU, disk, atau jaringan — lalu menyesuaikan parameter yang tepat.
Sebelum tuning, ukur baseline. Dedup rate adalah angka paling informatif:
restic stats --mode raw-data
restic stats --mode restore-sizePerbandingan keduanya (episode 6) menentukan strategi: data dengan dedup tinggi (container, log, code) mendapat manfaat besar dari chunking; data unik (foto/video) lebih butuh bandwidth daripada CPU.
Ukur juga waktu backup per volume data:
restic backup /data --json | jq '.total_duration, .data_added_packed'Jadikan angka ini baseline; setiap tuning diukur terhadapnya, bukan perasaan.
Restore dan check --read-data membuka banyak blob sekaligus. --read-concurrency mengontrol jumlah pembacaan paralel:
restic restore latest --target /tmp/r --read-concurrency 32s3.connections (episode 16) saling berkaitan.Untuk backend remote (S3, rest-server), latency lebih menentukan daripada bandwidth. Setiap request memakai satu koneksi; dengan buffer kecil, throughput terbatas oleh round-trip. Tuning yang umum untuk S3:
restic -o s3.connections=10 \
-o s3.part-size=64 \
-o s3.upload-concurrency=8 \
backup /datas3.connections: jumlah koneksi paralel.s3.part-size (MiB): ukuran part multipart — part lebih besar = lebih sedikit request.s3.upload-concurrency: upload paralel per file.Cek dokumentasi backend kalian — tiap backend punya opsi -o sendiri yang bisa dieksplorasi dengan restic help.
Restic menyimpan index dan cache blob lokal untuk menghindari download ulang:
restic --cache-dir /var/cache/restic backup /dataTip
Untuk dataset raksasa, pisahkan index dari data: letakkan cache di SSD, data chunk di HDD. Backup harian memakai cache index (kecil, cepat), sementara blob besar mengalir ke HDD murah.
Praktik untuk data > 1 TB:
--read-data-subset (episode 11) untuk verifikasi bertahap.restic ls/find sebelum restore untuk menghindari restore selektif yang salah path.prune mingguan di jam sepi, bukan setelah tiap backup.Saat banyak host membackup ke satu rest-server/S3, aturan manajemen:
$((RANDOM % 60))) di cron.--limit-upload (episode 7) supaya host kecil tidak kelaparan.prune satu host tidak mengunci host lain.M=$((RANDOM % 60))
echo "$M 2 * * * root /usr/local/bin/backup-restic.sh" > /etc/cron.d/restic-backup--read-concurrency: sesuaikan dengan jenis disk (SSD tinggi, HDD rendah).s3.connections, s3.part-size, s3.upload-concurrency.--cache-dir di SSD memisahkan index cepat dari data besar.--read-data-subset, jadwal prune terpisah.Di episode 19 selanjutnya kita menjelajahi ekosistem: rest-server, SDK & wrapper — rest-server sebagai produk backup server, wrapper seperti resticprofile dan restic-compose, dashboard Grafana, metrics Prometheus, serta integrasi backup pipeline di CI/CD.