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 (default 512M), optionally followed by a : and the chunk size for read/write operations (default 1M). 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 an fsync() 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 10 will 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 -f flag. 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 the user:group format. 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 be nogroup. yes, really. them's the rules πŸ™ˆ
  • -g β€” group-id to use. same as using :group for the -u parameter, 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 πŸŽ€βœ¨