http://brick.kernel.dk/snaps/
+Pascal Bleser <guru@unixtech.be> has fio RPMs in his repository, you
+can find them here:
+
+http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=System/fio
+
+
+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.
+
Options
-------
-l Generate per-job latency logs
-w Generate per-job bandwidth logs
-f <file> Read <file> for job descriptions
+ -O <file> Log output to file
-h Print help info
-v Print version information and exit
The <jobs> format is as follows:
+ name=x Use 'x' as the identifier for this job.
directory=x Use 'x' as the top level directory for storing files
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.
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,
- mmap for mmap'ed io, or sgio for direct SG_IO io. The
- latter only works on Linux on SCSI (or SCSI-like
- devices, such as usb-storage or sata/libata driven)
- devices.
+ mmap for mmap'ed io, splice for using splice/vmsplice,
+ or sgio for direct SG_IO io. The latter only works on
+ Linux on SCSI (or SCSI-like devices, such as
+ usb-storage or sata/libata driven) devices.
iodepth=x For async io, allow 'x' ios in flight
overwrite=x If 'x', layout a write file first.
prio=x Run io at prio X, 0-7 is the kernel allowed range
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.
+ end_fsync=x If 'x', run fsync() after end-of-job.
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
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.
+ 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.
Examples using a job file
-------------------------