borg-benchmark-crud(1)
π borg-benchmark-crud β the manual page, bestie edition
okay so you're reading the man page for borg-benchmark-crud(1), part of the borg backup tool. buckle up, it's giving β¨performance metricsβ¨
πΈ NAME πΈ
borg-benchmark-crud β Benchmark Create, Read, Update, Delete for archives.
like⦠it literally does what it says on the tin, no cap.
β¨ SYNOPSIS β¨
borg [common options] benchmark crud [options] REPOSITORY PATH
π DESCRIPTION π
so this command benchmarks borg CRUD (create, read, update, delete) operations. that's the whole vibe. π¦
It creates input data below the given PATH and backs up this data into the given REPO. The REPO must already exist β it could be a fresh empty repo or an existing repo, doesn't matter, the command will create / read / update / delete some archives named borg-benchmark-crud* there.
bestie, make sure you have free space there, you'll need about 1GB each (+ overhead). no pressure but likeβ¦ actually pressure π
If your repository is encrypted and borg needs a passphrase to unlock the key, use:
BORG_PASSPHRASE=mysecret borg benchmark crud REPO PATH
Measurements are done with different input file sizes and counts. The file contents are very artificial (either all zero or all random), so the measurement results do not necessarily reflect performance with real data. Also, due to the kind of content used, no compression is used in these benchmarks. π
C-== borg create (1st archive creation, no compression, do not use files cache)C-Z-== all-zero files. full deduplication; this primarily measures reader/chunker/hasher.C-R-== random files. no deduplication, measuring throughput through all processing stages.
R-== borg extract (extract archive, dry-run, do everything, but do not write files to disk)R-Z-== all-zero files. Measuring heavily duplicated files.R-R-== random files. No duplication here, measuring throughput through all processing stages, except writing to disk.
U-== borg create (2nd archive creation of unchanged input files, measure files cache speed)- The throughput value is kind of virtual here, it does not actually read the file.
U-Z-== needs to check the two all-zero chunks' existence in the repo.U-R-== needs to check existence of a lot of different chunks in the repo.
D-== borg delete archive (delete last remaining archive, measure deletion + compaction)D-Z-== few chunks to delete / few segments to compact/remove.D-R-== many chunks to delete / many segments to compact/remove.
ngl there might be quite some variance in these measurements. Try multiple measurements and have an otherwise idle machine (and network, if you use it). like, close your 47 browser tabs first, i'm begging π
π OPTIONS π
See borg-common(1) for common options of Borg commands. iykyk π«Ά
π arguments
REPOSITORYβ repository to use for benchmark (must exist)PATHβ path where to create benchmark input data
π SEE ALSO π
π Author π
The Borg Collective
and that's the whole page, you ate that π β¨
this was borg-benchmark-crud(1) from the borg backup tool, dated 2026-07-18 β periodt, go benchmark something bestie ππ¦
π¦ where this page comes from
- alpine 3.24: borgbackup-doc 1.4.5-r0 Β· BSD-3-Clause
- arch rolling: borg 1.4.5-1 Β· BSD
- ubuntu stonking: borgbackup 1.4.5-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms