2012年5月22日 星期二

FIO Disk benchmark

安裝 FIO, 這次客戶指定 2.0.3 版

wistor@ubuntu:~$ git clone git://
Cloning into 'fio'...
remote: Counting objects: 12112, done.
remote: Compressing objects: 100% (4397/4397), done.
remote: Total 12112 (delta 8787), reused 10519 (delta 7689)
Receiving objects: 100% (12112/12112), 2.76 MiB | 608 KiB/s, done.
Resolving deltas: 100% (8787/8787), done.
wistor@ubuntu:~$ cd fio
wistor@ubuntu:~/fio$ ls
arch            debug.h     filesetup.c           gettime.h    io_u.c      options.c  REPORTING-BUGS  trim.c
backend.c       diskutil.c  fio.1                 hash.h       lib         options.h  server.c        trim.h
blktrace_api.h  diskutil.h  fio.c                 helpers.c    libfio.c    os         server.h        verify.c
blktrace.c      engines     fio_generate_plots    helpers.h    log.c       parse.c    SERVER-TODO     verify.h
cgroup.c        eta.c       fio_generate_plots.1  HOWTO        log.h       parse.h    smalloc.c
cgroup.h        examples    fio.h                 init.c       Makefile    profile.c  smalloc.h
client.c        fifo.c      FIO-VERSION-GEN       io_ddir.h    memalign.c  profile.h  stat.c
compiler        fifo.h      flist.h               ioengine.h   memalign.h  profiles   stat.h
COPYING         file.h      flow.c                ioengines.c  memory.c    rbtree.c   t
crc             filehash.c  flow.h                iolog.c      mutex.c     rbtree.h   time.c
debug.c         filehash.h  gettime.c             iolog.h      mutex.h     README     time.h
wistor@ubuntu:~/fio$ git tag
wistor@ubuntu:~/fio$ git checkout fio-2.0.3
Note: checking out 'fio-2.0.3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 3f36aa6... Fio 2.0.3
wistor@ubuntu:~/fio$ make
wistor@ubuntu:~/fio$ sudo make install
install -m 755 -d /usr/local/bin
install fio fio_generate_plots /usr/local/bin
install -m 755 -d /usr/local/man/man1
install -m 644 fio.1 /usr/local/man/man1
install -m 644 fio_generate_plots.1 /usr/local/man/man1
wistor@ubuntu:~$ fio
No jobs(s) defined

fio 2.0.3
fio [options] [job options] 
  --debug=options       Enable debug logging. May be one/more of:
  --output              Write output to file
  --timeout             Runtime in seconds
  --latency-log         Generate per-job latency logs
  --bandwidth-log       Generate per-job bandwidth logs
  --minimal             Minimal (terse) output
  --version             Print version info and exit
  --terse-version=x     Set terse version output format to 'x'
  --help                Print this page
  --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"
  --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

Fio was written by Jens Axboe 
                 Jens Axboe 

SNIA spring 2012 tutorials