http://pkgs.repoforge.org/fio/
# wget "http://pkgs.repoforge.org/fio/fio-2.1.7-1.el6.rf.x86_64.rpm" # yum localinstall fio-2.1.7-1.el6.rf.x86_64.rpm
# fio --help fio-2.1.7 fio [options] [job options] <job file(s)> --debug=options Enable debug logging. May be one/more of: process,file,io,mem,blktrace,verify,random,parse, diskutil,job,mutex,profile,time,net,rate --parse-only Parse options only, don't start any IO --output Write output to file --runtime Runtime in seconds --latency-log Generate per-job latency logs --bandwidth-log Generate per-job bandwidth logs --minimal Minimal (terse) output --output-format=x Output format (terse,json,normal) --terse-version=x Set terse version output format to 'x' --version Print version info and exit --help Print this page --cpuclock-test Perform test/validation of CPU clock --crctest Test speed of checksum functions --cmdhelp=cmd Print command help, "all" for all of them --enghelp=engine Print ioengine help, or list available ioengines --enghelp=engine,cmd Print help for an ioengine cmd --showcmd Turn a job file into command line options --eta=when When ETA estimate should be printed May be "always", "never" or "auto" --eta-newline=time Force a new line for every 'time' period passed --status-interval=t Force full status dump every 't' period passed --readonly Turn on safety read-only checks, preventing writes --section=name Only run specified section in job file --alloc-size=kb Set smalloc pool to this size in kb (def 1024) --warnings-fatal Fio parser warnings are fatal --max-jobs=nr Maximum number of threads/processes to support --server=args Start a backend fio server --daemonize=pidfile Background fio server, write pid to file --client=hostname Talk to remote backend fio server at hostname --idle-prof=option Report cpu idleness on a system or percpu basis (option=system,percpu) or run unit work calibration only (option=calibrate) Fio was written by Jens Axboe <jens.axboe@oracle.com> Jens Axboe <jaxboe@fusionio.com> Jens Axboe <axboe@fb.com>
# fio \ > -ioengine=libaio \ > -direct=1 \ > -invalidate=1 \ > -filename=/tmp/fio.bin \ > -rw=randwrite \ > -bs=4k \ > -size=4G \ > -numjobs=1 \ > -runtime=60 \ > -group_reporting \ > -iodepth=32 \ > -name=randread1 randread1: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32 fio-2.1.7 Starting 1 process randread1: Laying out IO file(s) (1 file(s) / 4096MB) Jobs: 1 (f=1): [w] [-.-% done] [0KB/9298KB/0KB /s] [0/2324/0 iops] [eta 00m:00s] randread1: (groupid=0, jobs=1): err= 0: pid=2832: Fri Sep 4 09:58:44 2015 write: io=290992KB, bw=4849.9KB/s, iops=1212, runt= 60001msec slat (usec): min=5, max=510839, avg=699.45, stdev=7861.68 clat (usec): min=1, max=567741, avg=25654.93, stdev=51285.74 lat (usec): min=699, max=568098, avg=26355.55, stdev=51950.39 clat percentiles (msec): | 1.00th=[ 9], 5.00th=[ 10], 10.00th=[ 10], 20.00th=[ 11], | 30.00th=[ 11], 40.00th=[ 11], 50.00th=[ 11], 60.00th=[ 12], | 70.00th=[ 13], 80.00th=[ 20], 90.00th=[ 44], 95.00th=[ 105], | 99.00th=[ 293], 99.50th=[ 383], 99.90th=[ 498], 99.95th=[ 523], | 99.99th=[ 570] bw (KB /s): min= 337, max=12328, per=100.00%, avg=4892.28, stdev=3173.04 lat (usec) : 2=0.01%, 500=0.01%, 750=0.02%, 1000=0.01% lat (msec) : 2=0.03%, 4=0.10%, 10=19.80%, 20=60.49%, 50=10.94% lat (msec) : 100=3.40%, 250=3.80%, 500=1.32%, 750=0.09% cpu : usr=1.10%, sys=71.14%, ctx=60632, majf=2, minf=23 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0% issued : total=r=0/w=72748/d=0, short=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=32 Run status group 0 (all jobs): WRITE: io=290992KB, aggrb=4849KB/s, minb=4849KB/s, maxb=4849KB/s, mint=60001msec, maxt=60001msec Disk stats (read/write): sda: ios=4780/80748, merge=245/7022, ticks=28742/1607455, in_queue=1636136, util=100.00%