目次

fio:ディスクI/Oのベンチマークツール

install

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 

help

# 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>

sample

# 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%

memo

man fio
ファイルシステムのベンチマーク集
fioを使ったベンチマーク