X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=README;h=3240b65a412573b65eb2a6b90a73a73e678cea27;hp=afef8ec50203d7c367b8cc03537612545db3fedd;hb=bbfd6b00dea4daee05133c8cb991b78d091df9ae;hpb=ebac4655dd3624f3296ff83be48e0cdc02852f18 diff --git a/README b/README index afef8ec5..3240b65a 100644 --- a/README +++ b/README @@ -6,6 +6,36 @@ 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. + +Source +------ + +fio resides in a git repo, the canonical place is: + +git://brick.kernel.dk/data/git/fio.git + +Snapshots are frequently generated as well and they include the git +meta data as well. You can download them here: + +http://brick.kernel.dk/snaps/ + +Pascal Bleser 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 + +This might change in the future if I opt for an autoconf type setup. + + Options ------- @@ -19,19 +49,29 @@ $ fio -l Generate per-job latency logs -w Generate per-job bandwidth logs -f Read for job descriptions + -h Print help info -v Print version information and exit The 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, or randwrite + 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 @@ -57,6 +97,7 @@ The format is as follows: 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 @@ -64,7 +105,27 @@ The format is as follows: 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. + 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 -------------------------