IOMELT(1)

πŸ“¦ version 0.7, in nixos 26.05, nixpkgs unstable

πŸ’… IOMELT(1) β€” the iomelt page, bestie edition πŸ’…

okay so this is iomelt, and it lives in the User Manuals section of your manual pages, and I am literally about to make you love a storage benchmark. yes, a benchmark. stay with me. 🫢


✨ NAME ✨

iomelt β€” a simple yet effective IO benchmark tool 🌸


πŸ¦‹ SYNOPSIS πŸ¦‹

iomelt [-dDhnoOrRv] [-b BYTES ] [-s BYTES ] [-p PATH ]

πŸ’– DESCRIPTION πŸ’–

okay so iomelt is a benchmark tool for storage devices, and honestly? it's giving main character energy for something so understated. it's designed to be simple to use and to produce consistent and reproducible results β€” no chaos, no drama, just numbers you can trust. ✨

by default it creates a 10 Megabytes file using the optimal block size as returned by statvfs(), and then it runs a series of five different tests: serial write, serial read, random rewrite, random read, mixed read/write. five tests, five vibes, all in one go. πŸ’…


πŸŽ€ OPTIONS πŸŽ€

  • -d β€” dump data in a format that can be easily digested by pattern processing commands like awk. machine-readable, bestie. πŸ€–
  • -D β€” print time in seconds since epoch. raw timestamp realness. ⏱️
  • -h β€” prints usage parameters. the "help me help you" flag. πŸ™ˆ
  • -H β€” omit header row when dumping data. bye bye header, you will not be missed. πŸ‘‹
  • -n β€” do not convert bytes to a human readable format. keep those raw numbers raw. πŸ”’
  • -o β€” do NOT display results (does not override -d). yes, a benchmark that shows you nothing. iconic honestly. πŸ’€
  • -O β€” reopen workload file between tests. fresh file, fresh start, fresh vibes. πŸ¦‹
  • -r β€” creates a random suffix to the test file (useful when testing clustered distributed file systems that use file name as a hash key). so specific, so valid. 🎲
  • -R β€” tries to minimize cache effects by using Direct IO. heads up though: the underlying file system must support the O_DIRECT open() flag. the aligned buffer is created using posix_memalign(). no cap, this one's doing the most. πŸ”₯
  • -v β€” controls the level of verbosity. πŸ—£οΈ
  • -vv β€” even more verbose output. it's giving extra. πŸ’¬πŸ’¬
  • -V β€” displays version number. 🌈
  • -b BYTES β€” block size used for read and write operations. please note that unless specified, iomelt will try to use the optimal block size as returned by statvfs(). block size must be a power of two. ⚑
  • -s BYTES β€” test file size. K, M, G may be used as suffixes for Kilobytes, Megabytes and Gigabytes, respectively. pick your unit, live your truth. πŸ“
  • -p PATH β€” complete path to the directory where the test file should be created. πŸ“

πŸ‘‘ AUTHOR πŸ‘‘

Written by Rodrigo Campos (camposr@gmail.com) β€” absolute legend, we stan. πŸ’œ


πŸ”— SEE ALSO πŸ”—

open(2), statvfs(3), posix_memalign(3), posix_fadvise(2), read(2), write(2) β€” the whole friend group, fr fr. 🫢

Detailed documentation and latest version may be obtained at http://iomelt.com ⭐


πŸ’€ BUGS πŸ’€

okay so there are two things you need to know, and I'm saying this with love. πŸ™ˆ
  • The -v option must precede the -p option in order to display the debugging information for the chdir() operation. order matters, bestie. 😭
  • The unit conversion function will fail for large file sizes in 32 bit systems due to integer overflows. not a vibe, but forewarned is forearmed. ⚠️

and that's the whole page, no skips, no shortcuts. πŸ’… this one came from Linux, dated AUGUST 2012, and it's IOMELT(1) all the way down β€” mwah, go benchmark something. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from