[PATCH] Make ->buflen == 0 on SYNC io_u's
[fio.git] / README
diff --git a/README b/README
index 79d71f9a8bab641ee8952a060c152478aae947e5..98d82fa6339001e1e0082576dcc0b2cf28c23cfd 100644 (file)
--- a/README
+++ b/README
@@ -43,16 +43,11 @@ Command line
 ------------
 
 $ fio
-       -s IO is sequential
-       -b block size in KiB for each io
        -t <sec> Runtime in seconds
-       -r For random io, sequence must be repeatable
-       -R <on> If one thread fails to meet rate, quit all
-       -o <on> Use direct IO is 1, buffered if 0
        -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
+       -o <file> Log output to file
+       -m Minimal (terse) output
        -h Print help info
        -v Print version information and exit
 
@@ -73,6 +68,10 @@ The job file parameters are:
 
        name=x          Use 'x' as the identifier for this 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
@@ -82,6 +81,8 @@ The job file parameters are:
                         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,
@@ -91,6 +92,8 @@ The job file parameters are:
                        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.
+       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.
@@ -104,7 +107,9 @@ The job file parameters are:
        cpumask=x       Only allow job to run on CPUs defined by mask.
        fsync=x         If writing, fsync after every x blocks have been written
        startdelay=x    Start this thread x seconds after startup
-       timeout=x       Terminate x seconds after startup
+       timeout=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
@@ -114,6 +119,7 @@ The job file parameters are:
        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.
        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,
@@ -136,6 +142,8 @@ The job file parameters are:
        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.
@@ -143,6 +151,9 @@ The job file parameters are:
        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.
 
 
 Examples using a job file
@@ -306,14 +317,39 @@ util=             The disk utilization. A value of 100% means we kept the disk
                busy constantly, 50% would be a disk idling half of the time.
 
 
+Terse output
+------------
+
+For scripted usage where you typically want to generate tables or graphs
+of the results, fio can output the results in a comma seperated format.
+The format is one long line of values, such as:
+
+client1,0,0,936,331,2894,0,0,0.000000,0.000000,1,170,22.115385,34.290410,16,714,84.252874%,366.500000,566.417819,3496,1237,2894,0,0,0.000000,0.000000,0,246,6.671625,21.436952,0,2534,55.465300%,1406.600000,2008.044216,0.000000%,0.431928%,1109
+
+Split up, the format is as follows:
+
+       jobname, groupid, error
+       READ status:
+               KiB IO, bandwidth (KiB/sec), runtime (msec)
+               Submission latency: min, max, mean, deviation
+               Completion latency: min, max, mean, deviation
+               Bw: min, max, aggreate percentage of total, mean, deviation
+       WRITE status:
+               KiB IO, bandwidth (KiB/sec), runtime (msec)
+               Submission latency: min, max, mean, deviation
+               Completion latency: min, max, mean, deviation
+               Bw: min, max, aggreate percentage of total, mean, deviation
+       CPU usage: user, system, context switches
+
+
 Author
 ------
 
-Fio was written by Jens Axboe <axboe@suse.de> to enable flexible testing
+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@suse.de> 20060609
+Jens Axboe <axboe@kernel.dk> 20060905