fio
---

fio is a tool that will spawn a number of threads or processes doing a
particular type of io action as specified by the user. fio takes a
number of global parameters, each inherited by the thread unless
otherwise parameters given to them overriding that setting is given.
The typical use of fio is to write a job file matching the io load
one wants to simulate.


Source
------

fio resides in a git repo, the canonical place is:

git://git.kernel.dk/fio.git

The http protocol also works, path is the same.

Snapshots are frequently generated and they include the git meta data as
well. You can download them here:

http://brick.kernel.dk/snaps/

Pascal Bleser <guru@unixtech.be> has fio RPMs in his repository for
SUSE variants, you can find them here:

http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=System/fio

Dag Wieërs has RPMs for Red Hat related distros, find them here:

http://dag.wieers.com/rpm/packages/fio/

Mandriva has integrated fio into their package repository, so installing
on that distro should be as easy as typing 'urpmi fio'.


Mailing list
------------

There's a mailing list associated with fio. It's meant for general
discussion, bug reporting, questions - basically anything that has to
do with fio. An automated mail detailing recent commits is automatically
sent to the list at most daily. The list address is fio-devel@kernel.dk,
subscribe by sending an empty email to fio-devel+subscribe@kernel.dk.


Building
--------

Just type 'make' and 'make install'. If on FreeBSD, for now you have to
specify the FreeBSD Makefile with -f, eg:

$ make -f Makefile.Freebsd && make -f Makefile.FreeBSD install

Likewise with OpenSolaris, use the Makefile.solaris to compile there.
This might change in the future if I opt for an autoconf type setup.

If your compile fails with an error like this:

    CC gettime.o
In file included from fio.h:23,
                 from gettime.c:8:
os/os.h:15:20: error: libaio.h: No such file or directory
In file included from gettime.c:8:
fio.h:119: error: field 'iocb' has incomplete type
make: *** [gettime.o] Error 1

Check that you have the libaio development package installed. On RPM
based distros, it's typically called libaio-devel.


Command line
------------

$ fio
        --debug         Enable some debugging options (see below)
        --output        Write output to file
        --timeout       Runtime in seconds
        --latency-log   Generate per-job latency logs
        --bandwidth-log Generate per-job bandwidth logs
        --minimal       Minimal (terse) output
        --version       Print version info and exit
	--help		Print this page
	--cmdhelp=cmd	Print command help, "all" for all of them
	--showcmd	Turn a job file into command line options
	--readonly	Turn on safety read-only checks, preventing writes
	--eta=when	When ETA estimate should be printed
			May be "always", "never" or "auto"
	--section=name	Only run specified section in job file
	--alloc-size=kb	Set smalloc pool to this size in kb (def 1024)


Any parameters following the options will be assumed to be job files,
unless they match a job file parameter. You can add as many as you want,
each job file will be regarded as a separate group and fio will stonewall
its execution.

The --readonly switch is an extra safety guard to prevent accidentically
turning on a write setting when that is not desired. Fio will only write
if rw=write/randwrite/rw/randrw is given, but this extra safety net can
be used as an extra precaution. It will also enable a write check in the
io engine core to prevent an accidental write due to a fio bug.

The debug switch allows adding options that trigger certain logging
options in fio. Currently the options are:

	process		Dump info related to processes
	file		Dump info related to file actions
	io		Dump info related to IO queuing
	mem		Dump info related to memory allocations
	blktrace	Dump info related to blktrace setup
	verify		Dump info related to IO verification
	all		Enable all debug options
	random		Dump info related to random offset generation
	parse		Dump info related to option matching and parsing
	diskutil	Dump info related to disk utilization updates
	job:x		Dump info only related to job number x
	? or help	Show available debug options.

You can specify as many as you want, eg --debug=file,mem will enable
file and memory debugging.

The section switch is meant to make it easier to ship a bigger job file
instead of several smaller ones. Say you define a job file with light,
moderate, and heavy parts. Then you can ask fio to run the given part
only by giving it a --section=heavy command line option. The section
option only applies to job sections, the reserved 'global' section is
always parsed and taken into account.

Fio has an internal allocator for shared memory called smalloc. It
allocates shared structures from this pool. The pool defaults to 1024k
in size, and can grow to 32 pools. If running large jobs with randommap
enabled it can run out of memory, in which case the --alloc-size switch
is handy for starting with a larger pool size.


Job file
--------

See the HOWTO file for a more detailed description of parameters and what
they mean. This file contains the terse version. You can describe big and
complex setups with the command line, but generally it's a lot easier to
just write a simple job file to describe the workload. The job file format
is in the ini style format, as that is easy to read and write for the user.

The job file parameters are:

	name=x		Use 'x' as the identifier for this job.
	description=x	'x' is a text description of the job.
	directory=x	Use 'x' as the top level directory for storing files
	filename=x	Force the use of 'x' as the filename for all files
			in this thread. If not given, fio will make up
			a suitable filename based on the thread and file
			number.
	rw=x		'x' may be: read, randread, write, randwrite,
			rw (read-write mix), randrw (read-write random mix)
	rwmixcycle=x	Base cycle for switching between read and write
			in msecs.
	rwmixread=x	'x' percentage of rw mix ios will be reads. If
			rwmixwrite is also given, the last of the two will
			 be used if they don't add up to 100%.
	rwmixwrite=x	'x' percentage of rw mix ios will be writes. See
			rwmixread.
	rand_repeatable=x  The sequence of random io blocks can be repeatable
			across runs, if 'x' is 1.
	size=x		Set file size to x bytes (x string can include k/m/g)
	ioengine=x	'x' may be: aio/libaio/linuxaio for Linux aio,
			posixaio for POSIX aio, sync for regular read/write io,
			psync for regular pread/pwrite io, vsync for regular
			readv/writev (with queuing emulation) mmap for mmap'ed
			io, syslet-rw for syslet driven read/write, splice for
			using splice/vmsplice, sg for direct SG_IO io, net
			for network io, or cpuio for a cycler burner load. sg
			only works on Linux on SCSI (or SCSI-like devices, such
			as usb-storage or sata/libata driven) devices. Fio also
			has a null io engine, which is mainly used for testing
			fio itself.

	iodepth=x	For async io, allow 'x' ios in flight
	overwrite=x	If 'x', layout a write file first.
	nrfiles=x	Spread io load over 'x' number of files per job,
			if possible.
	prio=x		Run io at prio X, 0-7 is the kernel allowed range
	prioclass=x	Run io at prio class X
	bs=x		Use 'x' for thread blocksize. May include k/m postfix.
	bsrange=x-y	Mix thread block sizes randomly between x and y. May
			also include k/m postfix.
	direct=x	1 for direct IO, 0 for buffered IO
	thinktime=x	"Think" x usec after each io
	rate=x		Throttle rate to x KiB/sec
	ratemin=x	Quit if rate of x KiB/sec can't be met
	ratecycle=x	ratemin averaged over x msecs
	cpumask=x	Only allow job to run on CPUs defined by mask.
	cpus_allowed=x	Like 'cpumask', but allow text setting of CPU affinity.
	fsync=x		If writing with buffered IO, fsync after every
			'x' blocks have been written.
	end_fsync=x	If 'x', run fsync() after end-of-job.
	startdelay=x	Start this thread x seconds after startup
	runtime=x	Terminate x seconds after startup. Can include a
			normal time suffix if not given in seconds, such as
			'm' for minutes, 'h' for hours, and 'd' for days.
	offset=x	Start io at offset x (x string can include k/m/g)
	invalidate=x	Invalidate page cache for file prior to doing io
	sync=x		Use sync writes if x and writing buffered IO.
	mem=x		If x == malloc, use malloc for buffers. If x == shm,
			use shared memory for buffers. If x == mmap, use
			anonymous mmap.
	exitall		When one thread quits, terminate the others
	bwavgtime=x	Average bandwidth stats over an x msec window.
	create_serialize=x	If 'x', serialize file creation.
	create_fsync=x	If 'x', run fsync() after file creation.
	unlink		If set, unlink files when done.
	loops=x		Run the job 'x' number of times.
	verify=x	If 'x' == md5, use md5 for verifies. If 'x' == crc32,
			use crc32 for verifies. md5 is 'safer', but crc32 is
			a lot faster. Only makes sense for writing to a file.
	stonewall	Wait for preceeding jobs to end before running.
	numjobs=x	Create 'x' similar entries for this job
	thread		Use pthreads instead of forked jobs
	zonesize=x
	zoneskip=y	Zone options must be paired. If given, the job
			will skip y bytes for every x read/written. This
			can be used to gauge hard drive speed over the entire
			platter, without reading everything. Both x/y can
			include k/m/g suffix.
	iolog=x		Open and read io pattern from file 'x'. The file must
			contain one io action per line in the following format:
			rw, offset, length
			where with rw=0/1 for read/write, and the offset
			and length entries being in bytes.
	write_iolog=x	Write an iolog to file 'x' in the same format as iolog.
			The iolog options are exclusive, if both given the
			read iolog will be performed.
	write_bw_log	Write a bandwidth log.
	write_lat_log	Write a latency log.
	lockmem=x	Lock down x amount of memory on the machine, to
			simulate a machine with less memory available. x can
			include k/m/g suffix.
	nice=x		Run job at given nice value.
	exec_prerun=x	Run 'x' before job io is begun.
	exec_postrun=x	Run 'x' after job io has finished.
	ioscheduler=x	Use ioscheduler 'x' for this job.
	cpuload=x	For a CPU io thread, percentage of CPU time to attempt
			to burn.
	cpuchunks=x	Split burn cycles into pieces of x usecs.


Author
------

Fio was written by Jens Axboe <axboe@kernel.dk> to enable flexible testing
of the Linux IO subsystem and schedulers. He got tired of writing
specific test applications to simulate a given workload, and found that
the existing io benchmark/test tools out there weren't flexible enough
to do what he wanted.

Jens Axboe <axboe@kernel.dk> 20060905

