IOSIM(1)

πŸ“¦ version 1042.100.6.0.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, welcome to iosim(1) from the General Commands Manual β€” a performance tool to simulate I/O workloads. literally it's giving β€œlet’s fake some I/O and watch the numbers,” and honestly? iconic. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here’s the whole flag lineup, no cap. every default and valid range is exactly as written, so don’t come for me:

  • -c <number> β€” Burst Count. No. of I/Os performed in an I/O burst. Default Value: 10; Valid Range: [0, INT_MAX]
  • -i <msecs> β€” Inter Burst Duration. Amount of time each thread sleeps between bursts (-1 indicates random durations between 0-100 msecs). Default Value: 0; Valid Range: [-1, INT_MAX]
  • -d <msecs> β€” Inter I/O delay. Amount of time thread sleeps between issuing I/Os. Default Value: 0; Valid Range: [0, INT_MAX]
  • -t <number> β€” Thread count. Default Value: 1; Valid Range: [0, 1000]
  • -f <number> β€” Workload Type (0/1/2 : Read-Only/Write-Only/Mixed RW). Default Value: 0; Valid Range: [0, 2]
  • -m <number> β€” I/O Pattern (0/1 : Sequential/Random). Default Value: 0; Valid Range: [0, 1]
  • -j <bytes> β€” Size of I/O in bytes. Default Value: 4096; Valid Range: [0, INT_MAX]
  • -s <msecs> β€” Frequency of sync(2) calls. Default Value: 5000; Valid Range: [0, INT_MAX]
  • -l <number> β€” I/O Tier (0/1/2/3). Default Value: 0; Valid Range: [0, 3]
  • -z <number> β€” Size of the file created specified in pages (Only used when the file is being created by the tool). Default Value: 1 GB; Valid Range: [0, INT_MAX]
  • -x <secs> β€” Test duration (0 indicates that the tool would wait for a Ctrl+C). Default Value: 0; Valid Range: [0, INT_MAX]
  • -a number β€” I/O Caching behavior (0/1 : Non-cached/Cached). Default Value: 0; Valid Range: [0, 1]
  • -n <filename> β€” Filename for I/Os (If this option is not specified, the tool would create files on its own). Valid Range: Valid filename

πŸ’œ DESCRIPTION πŸ’œ

okay so iosim is the performance tool for simulating I/O workloads, specifically so you can evaluate I/O performance. It spawns n threads that issue non-cached I/Os. If specified, it also creates a sync thread that issues system-wide sync(2) calls to flush data and metadata to disk β€” yes, it emulates launchd behavior. The I/Os are issued at the specified I/O tier, and the tool reports latency and throughput numbers. 🫢

and here’s the results decoder ring, bestie:

  • Avg. Latency β€” the average latency experienced by the I/Os.
  • Low Latency Histogram β€” frequency distribution of I/O latency for low latency I/Os.
  • Latency Histogram β€” frequency distribution of I/O latency.
  • Burst Avg. Latency Histogram β€” frequency distribution of burst avg. latency.
  • Throughput timeline β€” time windowed throughput distrbution (keeping that spelling exactly as it is, bestie 😭).

πŸŽ€ SEE ALSO πŸŽ€


this iconic page is from macOS, dated October 9, 2013, and the source/version footer says IOSIM(1). mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from