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. If the wanted filename does need to
- include a colon, then escape that with a '\' character. For
- instance, if the filename is "/dev/dsk/foo@3,0:c", then you would
- use filename="/dev/dsk/foo@3,0\:c". '-' is a reserved name,
- meaning stdin or stdout. Which of the two depends on the read/write
- direction set.
+ filename=/dev/sda:/dev/sdb. On Windows, disk devices are accessed
+ as \\.\PhysicalDrive0 for the first device, \\.\PhysicalDrive1
+ for the second etc. If the wanted filename does need to
+ include a colon, then escape that with a '\' character.
+ For instance, if the filename is "/dev/dsk/foo@3,0:c",
+ then you would use filename="/dev/dsk/foo@3,0\:c".
+ '-' 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.
fallocate=bool By default, fio will use fallocate() to advise the system
of the size of the file we are going to write. This can be
turned off with fallocate=0. May not be available on all
- supported platforms.
+ supported platforms. If using ZFS on Solaris this must be
+ set to 0 because ZFS doesn't support it.
fadvise_hint=bool By default, fio will use fadvise() to advise the kernel
on what IO patterns it is likely to issue. Sometimes you
solarisaio Solaris native asynchronous io.
+ windowsaio Windows native asynchronous io.
+
mmap File is memory mapped and data copied
to/from using memcpy(3).
iodepth=int This defines how many io units to keep in flight against
the file. The default is 1 for each file defined in this
job, can be overridden with a larger value for higher
- concurrency.
+ concurrency. Note that increasing iodepth beyond 1 will not
+ affect synchronous ioengines (except for small degress when
+ verify_async is in use). Even async engines may impose OS
+ restrictions causing the desired depth not to be achieved.
+ This may happen on Linux when using libaio and not setting
+ direct=1, since buffered IO is not async on that OS. Keep an
+ eye on the IO depth distribution in the fio output to verify
+ that the achieved depth is as expected. Default: 1.
iodepth_batch_submit=int
iodepth_batch=int This defines how many pieces of IO to submit at once.
the depth drain down to 4 before starting to fill it again.
direct=bool If value is true, use non-buffered io. This is usually
- O_DIRECT.
+ O_DIRECT. Note that ZFS on Solaris doesn't support direct io.
buffered=bool If value is true, use buffered io. This is the opposite
of the 'direct' option. Defaults to true.
io on zones of a file.
write_iolog=str Write the issued io patterns to the specified file. See
- read_iolog.
+ read_iolog. Specify a separate file for each job, otherwise
+ the iologs will be interspersed and the file may be corrupt.
read_iolog=str Open an iolog with the specified file name and replay the
io patterns it contains. This can be used to store a