zcav(8)
πΎ zcav β the glow-up guide to testing raw hard drive throughput β¨
okay bestie, so this is the manual for zcav, and yes it lives in section 8 of the System Manager's Manual because it's a big-kid sysadmin tool, not some lil userland thing π
π NAME π
zcav β a program to test raw hard drive throughput. that's it, that's the whole vibe. it's giving benchmark queen π
π¦ SYNOPSIS π¦
zcav [-b block-size[:chunk-size]] [-c count] [-r
[first-block]:last-block] [-w] [-s skip-rate] [-u uid-to-use:gid-to-use]
[-g gid-to-use] [-l log-file] [-f] file-name [-l log-file [-f]
file-name]...
like, look at all those flags. she's got range π
πΈ DESCRIPTION πΈ
So this manual page documents zcav briefly, fr fr. just the basics, no yapping.
Here's the tea β: modern hard drives spin at a constant rotational speed, but they do NOT have a constant number of sectors per track. the outside tracks are literally longer (physics, bestie, circumference is real) so they fit more sectors. this whole situation is called Zoned Constant Angular Velocity, aka ZCAV. and because the outer tracks have more sectors per track, they get a higher data transfer rate β and those tracks generally have the lower track/sector numbers. slay for the outer edge of your disk, honestly π
What this program does: it tests the ZCAV performance of a hard drive by reading the entire data on it a specified number of times. that's the whole job. she reads, you graph π
The file name is given as the first parameter, and plot twist β you can specify it as - for standard input. iconic. This file will be opened read-only, and in usual operation it'll be something like /dev/hdX or /dev/ide/host0/busX/targetY/lun0/disc depending on whether you use devfs or not. (NB β operating systems other than Linux will have different device names, so don't come for me π)
The output should be able to be easily graphed with gnuplot, which is what the author uses to view the results. so if you're not graphing it, bestie, what are you even doing π
β¨ OPTIONS β¨
-bβ the size (in Meg) of the blocks to read/write (default512M), optionally followed by a:and the chunk size for read/write operations (default1M). and listen β the chunk size must be less than or equal to the block size, and it must also be <em>significantly less than the size of the RAM in the machine</em>. also also, for the write test there will be anfsync()after writing every chunk. so like, respect the chunk, okay? π«Ά-cβ the number of times to read/write the entire disk. how many laps around the whole drive, basically πβοΈ-rβ the range of data (in Meg) to read/write on each pass (default: the entire device). super useful if you just wanna quickly test <em>part</em> of a large drive instead of committing to the whole thing. if a single number is given then that's the <em>last block</em> to read; if two numbers then it's the <em>start and end</em> of a range. values are in megs, but heads up β they get rounded down to the block size. no cap π-sβ skip rate. the option-s 10will cause it to read every 10th block and skip the rest. accepts values from 2 to 20. that's the whole range, don't get creative β-fβ the file-name for the input data. this isn't needed on well configured systems that have a recent Glibc, where you can specify the file name without the-fflag. so on a good system you can just rawdog the filename, love that for you β¨-uβ user-id to use. when running as root, specify the UID to run the tests as. it is not recommended to use root, so if you <em>really</em> want to run as root, use-u root. also, if you wanna specify the group to run as, use theuser:groupformat. if you specify a user <em>by name</em> but no group, then the primary group of that user will be chosen. if you specify a user <em>by number</em> and no group, then the group will benogroup. yes, really. them's the rules π-gβ group-id to use. same as using:groupfor the-uparameter, just a different way to specify it, for compatibility with other programs. twins, basically π―βοΈ-wβ write zero blocks to the disk instead of reading from the disk.
π¨ WILL DESTROY DATA! π¨ like, actually. gone. obliterated. back up first or perish, bestie π
π AUTHOR π
This program, it's manual page, and the Debian package were written by Russell Coker <russell@coker.com.au>. absolute legend, we stan a triple-threat author π«Ά
π₯ AVAILABILITY π₯
The source is available from http://www.coker.com.au/bonnie++.
See http://etbe.coker.com.au/category/benchmark for further information. go read, iykyk π
and that's the whole page, babes π it came to you straight out of the <b>System Manager's Manual</b>, filed under <b>zcav(8)</b> β mwah, go benchmark something πβ¨
π¦ where this page comes from
- arch rolling: bonnie++ 2.00a-4 Β· GPL
- debian bookworm: bonnie++ 2.00a+nmu1
- debian trixie: bonnie++ 2.00a+nmu3
- epel 10: bonnie++ 2.00a-23.el10_3 Β· GPL-2.0-only
- epel 9: bonnie++ 2.00a-7.el9 Β· GPLv2
- fedora 43: bonnie++ 2.00a-11.fc41 Β· GPLv2
- fedora 43: bonnie++ 2.00a-23.fc43 Β· GPL-2.0-only
- fedora 44: bonnie++ 2.00a-19.fc44 Β· GPL-2.0-only
- fedora 44: bonnie++ 2.00a-23.fc44 Β· GPL-2.0-only
- nixos 26.05: bonnie++ 2.00a
- nixpkgs unstable: bonnie++ 2.00a
- opensuse-leap 16.0: bonnie++ 2.00a-bp160.1.12 Β· MIT
- opensuse-leap 16.0: bonnie++ 2.00a-bp160.1.12 Β· MIT
- opensuse-leap 16.0: bonnie++ 2.00a-bp160.1.12 Β· MIT
- opensuse-leap 16.0: bonnie++ 2.00a-bp160.1.12 Β· MIT
- ubuntu jammy: bonnie++ 2.00aubuntu2
- ubuntu noble: bonnie++ 2.00a+nmu2build1
- ubuntu questing: bonnie++ 2.00a+nmu2ubuntu1
- ubuntu resolute: bonnie++ 2.00a+nmu2ubuntu2
- ubuntu stonking: bonnie++ 2.00a+nmu3ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms