Fio IO性能测试
Posted doscho
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fio IO性能测试相关的知识,希望对你有一定的参考价值。
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, 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 --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性能测试的主要内容,如果未能解决你的问题,请参考以下文章