1. 程式人生 > >Fio IO性能測試

Fio IO性能測試

host tput mon eat work diff less pla blog

fio-2.1.2-1.el5.rf.x86_64

介紹

fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as
well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information. It supports Linux, FreeBSD, NetBSD, OS X, and OpenSolaris.

 

1. sync:       Basic read(2) or write(2) I/O. fseek(2) is used to position the I/O location.
2. psync:   Basic pread(
2) or pwrite(2) I/O. 3. vsync: Basic readv(2) or writev(2) I/O. Will emulate queuing by coalescing adjacents IOs into a single submission. 4. libaio: Linux native asynchronous I/O. 5. posixaio: glibc POSIX asynchronous I/O using aio_read(3) and aio_write(3). 6. mmap: File is memory mapped with mmap(2
) and data copied using memcpy(3). 7. splice:   splice(2) is used to transfer the data and vmsplice(2) to transfer data from user-space to the kernel. syslet-rw: Use the syslet system calls to make regular read/write asynchronous. sg:SCSI generic sg v3 I/O. net : Transfer over the network. filename must be set appropriately to `host/port’ regardless of data direction. If receiving, only the port argument is used. netsplice: Like net, but uses splice(2) and vmsplice(2) to map data and send/receive. guasi The GUASI I/O engine is the Generic Userspace Asynchronous Syscall Interface approach to asycnronous I/O.

fio:

No jobs(s) defined

fio-2.1.2
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
  --parse-only        Parse options only, dont 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
  --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)

常用操作:

  

相關命令:

  fio2gnuplot.py

  fio_generate_plots

  genfio

參考:

  https://wenku.baidu.com/view/f450ec2a7375a417866f8f68.html

  http://blog.yufeng.info/archives/677

  http://blog.csdn.net/wyzxg/article/details/7454072

  官網: http://freshmeat.net/projects/fio/

Fio IO性能測試