# A code to measure IOPs/Bandwidth

Many testing codes for storage systems report various values, by shoving IO down the pipe, and measuring amount shoved, and interval between the first IO call and “end” of last IO call. This is all well and good for some cases, but caching and many other effects get in the way of accurate measurement. Systems eventually settle down to an approximate state with small perturbations around this state.
The problem is that most tools don’t quite report this. They report the IO generation side, not the IO actual side. And that is where we need to be looking.
So I crafted a tool to do this looking. And while it is pretty rudimentary right now, it does look promising. I’d like to try to gather the data per process group, as we are grabbing full system right now.
Still useful information, but more precise data would be nice.
[update] A simple example:
landman@metal:/local2/home/landman/work/development/IODataRun$./IODataRun.pl –dev sda –debug sleep 10 starting program ‘sleep 10’ at time stamp = 1345825349.000000 Perl exited with active threads: 3 running and unjoined 0 finished and unjoined 0 running and detached landman@metal:/local2/home/landman/work/development/IODataRun$ cat /dev/shm/iops-dev.data
1345825330 2.26 6.06 0.08 0.07
1345825331 1.00 0.00 0.00 0.00
1345825332 4.00 27.00 0.02 0.12
1345825333 0.00 3.00 0.00 0.02
1345825334 0.00 3.00 0.00 0.04
1345825335 0.00 0.00 0.00 0.00
1345825336 0.00 0.00 0.00 0.00
1345825337 0.00 0.00 0.00 0.00
1345825338 0.00 0.00 0.00 0.00
1345825339 0.00 0.00 0.00 0.00
1345825340 0.00 0.00 0.00 0.00
1345825341 0.00 36.00 0.00 0.12
1345825341 0.00 5.00 0.00 0.06
1345825349 2.26 6.06 0.08 0.07
1345825350 0.00 1.00 0.00 0.03
1345825351 0.00 1.00 0.00 0.03
1345825352 0.00 1.00 0.00 0.03
1345825353 0.00 1.00 0.00 0.03
1345825354 0.00 1.00 0.00 0.03
1345825355 0.00 1.00 0.00 0.03
1345825356 0.00 0.00 0.00 0.00
1345825357 0.00 1.00 0.00 0.03
1345825358 0.00 10.00 0.00 0.06
1345825359 0.00 7.00 0.00 0.05
Columns are time stamp, read ops, write ops, read BW in MB/s, write BW in MB/s .
Needs some additional work, but its a good start. GPL-ized soon.