BLKIOMON(8)

πŸ“¦
version 1.3.0+git.20211021 Β· 2 versions
, in centos-stream 10, centos-stream 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’… BLKIOMON(8) β€” the block device monitor that literally slays

okay bestie, welcome to blkiomon(8), and no I'm not gatekeeping this one πŸ’– the vibe is simple: it's a block device I/O monitor, it's written by Martin Peschke, and it's here to make your storage stats look iconic. let's get into it ✨


πŸ¦‹ SYNOPSIS

blkiomon -I interval [ -h file ] [ -b file ] [ -d file ] [ -D file ] [
-Q path_name -q msg_queue_id -m msg_id ] [ -V ]

that's the whole assignment, fr fr β€” every flag below, no mystery, no cap 🫢


✨ DESCRIPTION

so blkiomon is a block device I/O monitor. the way it works: it periodically generates per-device request size and request latency statistics from blktrace data. it provides histograms as well as data that can be used to calculate min, max, average and variance. chef's kiss πŸŽ€

to do all that, it consumes D and C traces read from stdin. and here's the caveat bestie, listen up πŸ‘‡

heads up: this doesn't work for logical volumes, because high-level drivers don't see the completion of the events (C). the data just isn't there 😭

there are options for binary output and human-readable output to files and stdout. output to a message queue is supported as well β€” oh we love a quadfecta πŸ’…

and bestie, plot twist: there is no need to use blkparse with blkiomon. blkiomon is capable of consuming binary output written to stdout by blktrace. we skip the middleman, we ate πŸ”₯


🌸 OPTIONS

one bullet per flag, and I did not skip a single one. organize me, put me in a list πŸ’œ

  • -I interval, --interval=interval β€” set the sample interval. that's your heartbeat, your rhythm, your whole temporal situation ⭐
  • -h file, --human-readable=file β€” human-readable output file. use - for stdout. obsessed πŸŽ€
  • -b file, --binary=file β€” binary output file. use - for stdout. it's giving machine-readable realness πŸ¦‹
  • -d file, --dump-lldd=file β€” output file for data emitted by the low level device driver. literally what it says πŸ‘‘πŸŒˆ
  • -D file, --debug=file β€” output file for debugging data. use - for stdout. when things get weird, you come here πŸ™ˆ
  • -Q path_name, --msg-queue=path_name β€” sets path_name as path name for an existing message queue to be used for binary output. message queue era ✨
  • -q msg_queue_id, --msg-queue-id=msg_queue_id β€” sets msg_queue_id as ID for an existing message queue to be used for binary output. it's the queue's whole identity fr fr πŸ’–
  • -m msg_id, --msg-id=msg_id β€” sets msg_id as message identifier to be used for binary output messages written to an existing message queue. label your messages, bestie 🏷️
  • -V, --version β€” print program version. say hi to the version, it says hi back πŸ‘‹

πŸ”₯ EXAMPLES

okay so real scenario, bestie: to get I/O statistics for /dev/sdw every 10 seconds for a period of one hour, use the following command:

% blktrace /dev/sdw -a issue -a complete -w 3600 -o - | blkiomon -I 10 -h -

look at that pipe. look at that -I 10. look at that -h - sending human-readable straight to stdout. iconic, no notes, ate πŸ’…πŸ₯°


πŸ‘‘ AUTHORS

blkiomon and this man page were written by Martin Peschke. king behavior, we stan 🫢


πŸ’€ REPORTING BUGS

found a bug? don't suffer in silence, bestie. report bugs to <linux-btrace@vger.kernel.org>. the maintainers want to hear about it, that's the whole point 🌈


  • Copyright Β© 2008 IBM Corp.
  • This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
  • There is NO WARRANTY, to the extent permitted by law.
read that again bestie: NO WARRANTY, all caps, no ambiguity, no vibes-based exceptions. it's free software but it's not a promise πŸ’œ

πŸ“ SEE ALSO

  • btrace (8)
  • blktrace (8)
  • blkparse (1)
  • verify_blkparse (1)
  • blkrawverify (1)
  • btt (1)

go read them, they're all in the same friend group ✨ iykyk


and that's the whole page, bestie πŸ’– this one's from the July 17, 2008 release, matching this BLKIOMON(8) man page, and we're closing it out with the full group hug β€” mwah, slay, go monitor some block devices responsibly πŸŽ€πŸ¦‹πŸ’