Sunday, March 8, 2015

Benchmarking zfs on linux using IOZone3 utility

IOZone is a filesystem benchmarking tool. It can be compiled on a variety of operating systems including linux. The steps are fairly straightforward.


  • Download the source file - http://www.iozone.org/src/current/iozone3_430.tar
  • tar xvf iozone3_430.tar; cd iozone3_430/src/current
  • make && make linux
After you have compiled successfully, you can run a throughput test

$ ./iozone -t 1
        Iozone: Performance Test of File I/O
                Version $Revision: 3.430 $
                Compiled for 64 bit mode.
                Build: linux

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,

                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Sun Mar  8 21:19:35 2015

        Command line used: ./iozone -t 1
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
        Throughput test with 1 process
        Each process writes a 512 kByte file in 4 kByte records

        Children see throughput for  1 initial writers  = 1209982.38 kB/sec
        Parent sees throughput for  1 initial writers   =   65886.25 kB/sec
        Min throughput per process                      = 1209982.38 kB/sec
        Max throughput per process                      = 1209982.38 kB/sec
        Avg throughput per process                      = 1209982.38 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for  1 rewriters        = 2089386.88 kB/sec
        Parent sees throughput for  1 rewriters         =   60742.64 kB/sec
        Min throughput per process                      = 2089386.88 kB/sec
        Max throughput per process                      = 2089386.88 kB/sec
        Avg throughput per process                      = 2089386.88 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for  1 readers          = 5067142.00 kB/sec
        Parent sees throughput for  1 readers           = 1614885.28 kB/sec
        Min throughput per process                      = 5067142.00 kB/sec
        Max throughput per process                      = 5067142.00 kB/sec
        Avg throughput per process                      = 5067142.00 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 re-readers        = 5177083.50 kB/sec
        Parent sees throughput for 1 re-readers         = 1645826.39 kB/sec
        Min throughput per process                      = 5177083.50 kB/sec
        Max throughput per process                      = 5177083.50 kB/sec
        Avg throughput per process                      = 5177083.50 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 reverse readers   = 3822466.75 kB/sec
        Parent sees throughput for 1 reverse readers    = 1500891.18 kB/sec
        Min throughput per process                      = 3822466.75 kB/sec
        Max throughput per process                      = 3822466.75 kB/sec
        Avg throughput per process                      = 3822466.75 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 stride readers    = 3556580.50 kB/sec
        Parent sees throughput for 1 stride readers     = 1438555.37 kB/sec
        Min throughput per process                      = 3556580.50 kB/sec
        Max throughput per process                      = 3556580.50 kB/sec
        Avg throughput per process                      = 3556580.50 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 random readers    = 4091959.25 kB/sec
        Parent sees throughput for 1 random readers     = 1514653.00 kB/sec
        Min throughput per process                      = 4091959.25 kB/sec
        Max throughput per process                      = 4091959.25 kB/sec
        Avg throughput per process                      = 4091959.25 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 mixed workload    = 4099771.25 kB/sec
        Parent sees throughput for 1 mixed workload     = 1550747.27 kB/sec
        Min throughput per process                      = 4099771.25 kB/sec
        Max throughput per process                      = 4099771.25 kB/sec
        Avg throughput per process                      = 4099771.25 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 random writers    = 1904125.62 kB/sec
        Parent sees throughput for 1 random writers     =   70243.93 kB/sec
        Min throughput per process                      = 1904125.62 kB/sec
        Max throughput per process                      = 1904125.62 kB/sec
        Avg throughput per process                      = 1904125.62 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 pwrite writers    = 1276891.62 kB/sec
        Parent sees throughput for 1 pwrite writers     =   68956.01 kB/sec
        Min throughput per process                      = 1276891.62 kB/sec
        Max throughput per process                      = 1276891.62 kB/sec
        Avg throughput per process                      = 1276891.62 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for 1 pread readers     = 4447925.50 kB/sec
        Parent sees throughput for 1 pread readers      = 1551867.91 kB/sec
        Min throughput per process                      = 4447925.50 kB/sec
        Max throughput per process                      = 4447925.50 kB/sec
        Avg throughput per process                      = 4447925.50 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for  1 fwriters         = 1992459.00 kB/sec
        Parent sees throughput for  1 fwriters          =   71191.70 kB/sec
        Min throughput per process                      = 1992459.00 kB/sec
        Max throughput per process                      = 1992459.00 kB/sec
        Avg throughput per process                      = 1992459.00 kB/sec
        Min xfer                                        =     512.00 kB

        Children see throughput for  1 freaders         = 4237292.00 kB/sec
        Parent sees throughput for  1 freaders          = 1594501.46 kB/sec
        Min throughput per process                      = 4237292.00 kB/sec
        Max throughput per process                      = 4237292.00 kB/sec
        Avg throughput per process                      = 4237292.00 kB/sec
        Min xfer                                        =     512.00 kB


iozone test complete.

Now you can run automated test with different record sizes and file sizes

$./iozone -a -b output.xls

and you will have outputs that can be charted as below (e.g writes) - 



No comments:

Post a Comment