thread number, and file number. If you want to share
files between threads in a job or several jobs, specify
a filename for each of them to override the default. If
- the ioengine used is 'net', the filename is the host and
- port to connect to in the format of =host/port. If the
- ioengine is file based, you can specify a number of files
- by separating the names with a ':' colon. So if you wanted
- a job to open /dev/sda and /dev/sdb as the two working files,
- you would use filename=/dev/sda:/dev/sdb. '-' is a reserved
- name, meaning stdin or stdout. Which of the two depends
- on the read/write direction set.
+ the ioengine used is 'net', the filename is the host, port,
+ and protocol to use in the format of =host/port/protocol.
+ See ioengine=net for more. If the ioengine is file based, you
+ can specify a number of files by separating the names with a
+ ':' colon. So if you wanted a job to open /dev/sda and /dev/sdb
+ as the two working files, you would use
+ filename=/dev/sda:/dev/sdb. '-' is a reserved name, meaning
+ stdin or stdout. Which of the two depends on the read/write
+ direction set.
opendir=str Tell fio to recursively add any file it can find in this
directory and down the file system tree.
vsync Basic readv(2) or writev(2) IO.
- libaio Linux native asynchronous io.
+ libaio Linux native asynchronous io. Note that Linux
+ may only support queued behaviour with
+ non-buffered IO (set direct=1 or buffered=0).
posixaio glibc posix asynchronous io.
net Transfer over the network to given host:port.
'filename' must be set appropriately to
- filename=host/port regardless of send
+ filename=host/port/protocol regardless of send
or receive, if the latter only the port
- argument is used.
+ argument is used. 'host' may be an IP address
+ or hostname, port is the port number to be used,
+ and protocol may be 'udp' or 'tcp'. If no
+ protocol is given, TCP is used.
netsplice Like net, but uses splice/vmsplice to
map data and send/receive.
we only do about 0.4% of the gtod() calls we would have
done if all time keeping was enabled.
+gtod_cpu=int Sometimes it's cheaper to dedicate a single thread of
+ execution to just getting the current time. Fio (and
+ databases, for instance) are very intensive on gettimeofday()
+ calls. With this option, you can set one CPU aside for
+ doing nothing but logging current time to a shared memory
+ location. Then the other threads/processes that run IO
+ workloads need only copy that segment, instead of entering
+ the kernel with a gettimeofday() call. The CPU set aside
+ for doing these time calls will be excluded from other
+ uses. Fio will manually clear it from the CPU mask of other
+ jobs.
+
6.0 Interpreting the output
---------------------------