Sync README with fio usage output
[fio.git] / README
diff --git a/README b/README
index 4da0d249132ad0d327b0f157862a317a25bc9c6c..2fa8e1bbac41db9af25546753480f1bf370e6567 100644 (file)
--- a/README
+++ b/README
@@ -26,6 +26,18 @@ Snapshots can download from:
 
        http://brick.kernel.dk/snaps/
 
+There are also two official mirrors. Both of these are automatically synced
+with the main repository, when changes are pushed. If the main repo is down
+for some reason, either one of these is safe to use as a backup:
+
+       git://git.kernel.org/pub/scm/linux/kernel/git/axboe/fio.git
+       https://git.kernel.org/pub/scm/linux/kernel/git/axboe/fio.git
+
+or
+
+       git://github.com/axboe/fio.git
+       https://github.com/axboe/fio.git
+
 
 Binary packages
 ---------------
@@ -53,7 +65,7 @@ tool (http://www.opencsw.org/get-it/pkgutil/) and then install fio via
 'pkgutil -i fio'.
 
 Windows:
-Bruce Cran <bruce@cran.org.uk> has fio packages for Windows at
+Rebecca Cran <rebecca+fio@bluestop.org> has fio packages for Windows at
 http://www.bluestop.org/fio/ .
 
 
@@ -101,6 +113,9 @@ To build FIO with a cross-compiler:
  $ make CROSS_COMPILE=/path/to/toolchain/prefix
 Configure will attempt to determine the target platform automatically.
 
+It's possible to build fio for ESX as well, use the --esx switch to
+configure.
+
 
 Windows
 -------
@@ -134,34 +149,41 @@ $ fio
        --parse-only            Parse options only, don't start any IO
        --output                Write output to file
        --runtime               Runtime in seconds
-       --latency-log           Generate per-job latency logs
-       --bandwidth-log         Generate per-job bandwidth logs
+       --bandwidth-log         Generate aggregate bandwidth logs
        --minimal               Minimal (terse) output
-       --output-format=type    Output format (terse,json,normal)
-       --terse-version=type    Terse version output format (default 3, or 2 or 4).
+       --output-format=type    Output format (terse,json,json+,normal)
+       --terse-version=type    Set terse version output format (default 3, or 2 or 4)
        --version               Print version info and exit
        --help                  Print this page
        --cpuclock-test         Perform test/validation of CPU clock
+       --crctest=type          Test speed of checksum functions
        --cmdhelp=cmd           Print command help, "all" for all of them
        --enghelp=engine        Print ioengine help, or list available ioengines
        --enghelp=engine,cmd    Print help for an ioengine cmd
        --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"
        --eta-newline=time      Force a new line for every 'time' period passed
        --status-interval=t     Force full status dump every 't' period passed
+       --readonly              Turn on safety read-only checks, preventing writes
        --section=name          Only run specified section in job file.
                                Multiple sections can be specified.
-       --alloc-size=kb         Set smalloc pool to this size in kb (def 1024)
+       --alloc-size=kb         Set smalloc pool to this size in kb (def 16384)
        --warnings-fatal        Fio parser warnings are fatal
-       --max-jobs              Maximum number of threads/processes to support
-       --server=args           Start backend server. See Client/Server section.
-       --client=host           Connect to specified backend.
+       --max-jobs=nr           Maximum number of threads/processes to support
+       --server=args           Start a backend fio server. See Client/Server section.
+       --client=hostname       Talk to remote backend(s) fio server at hostname
+       --daemonize=pidfile     Background fio server, write pid to file
+       --remote-config=file    Tell fio server to load this local job file
        --idle-prof=option      Report cpu idleness on a system or percpu basis
                                (option=system,percpu) or run unit work
-                               calibration only (option=calibrate).
+                               calibration only (option=calibrate)
+       --inflate-log=log       Inflate and output compressed log
+       --trigger-file=file     Execute trigger cmd when file exists
+       --trigger-timeout=t     Execute trigger af this time
+       --trigger=cmd           Set this command as local trigger
+       --trigger-remote=cmd    Set this command as remote trigger
+       --aux-path=path         Use this path for fio state generated files
 
 
 Any parameters following the options will be assumed to be job files,
@@ -195,6 +217,9 @@ Currently, additional logging is available for:
        time            Dump info related to internal time keeping
        net             Dump info related to networking connections
        rate            Dump info related to IO rate switching
+       compress        Dump info related to log compress/decompress
+       steadystate     Dump info related to steady state detection
+       helperthread    Dump info related to helper thread
        ? or help       Show available debug options.
 
 One can specify multiple debug options: e.g. --debug=file,mem will enable
@@ -210,7 +235,7 @@ sections.  The reserved 'global' section is always parsed and used.
 The --alloc-size switch allows one to use a larger pool size for smalloc.
 If running large jobs with randommap enabled, fio can run out of memory.
 Smalloc is an internal allocator for shared structures from a fixed size
-memory pool. The pool size defaults to 1024k and can grow to 128 pools.
+memory pool. The pool size defaults to 16MiB and can grow to 8 pools.
 
 NOTE: While running .fio_smalloc.* backing store files are visible in /tmp.
 
@@ -289,14 +314,48 @@ Fio can connect to multiple servers this way:
 
 fio --client=<server1> <job file(s)> --client=<server2> <job file(s)>
 
+If the job file is located on the fio server, then you can tell the server
+to load a local file as well. This is done by using --remote-config:
+
+fio --client=server --remote-config /path/to/file.fio
+
+Then fio will open this local (to the server) job file instead
+of being passed one from the client.
+
+If you have many servers (example: 100 VMs/containers), 
+you can input a pathname of a file containing host IPs/names as the parameter 
+value for the --client option.  For example, here is an example "host.list" 
+file containing 2 hostnames:
+
+host1.your.dns.domain
+host2.your.dns.domain
+
+The fio command would then be:
+
+fio --client=host.list <job file(s)>
+
+In this mode, you cannot input server-specific parameters or job files -- all
+servers receive the same job file.  
+
+In order to let fio --client runs use a shared filesystem 
+from multiple hosts, fio  --client now prepends the IP address of the 
+server to the filename.  For example, if fio is using directory /mnt/nfs/fio 
+and is writing filename fileio.tmp, with a --client hostfile containing 
+two hostnames h1 and h2 with IP addresses 192.168.10.120 and  192.168.10.121,
+then fio will create two files:
+
+       /mnt/nfs/fio/192.168.10.120.fileio.tmp
+       /mnt/nfs/fio/192.168.10.121.fileio.tmp
+
 
 Platforms
 ---------
 
 Fio works on (at least) Linux, Solaris, AIX, HP-UX, OSX, NetBSD, OpenBSD,
-Windows and FreeBSD.  Some features and/or options may only be available on
-some of the platforms, typically because those features only apply to that
-platform (like the solarisaio engine, or the splice engine on Linux).
+Windows, FreeBSD, and DragonFly. Some features and/or options may only be
+available on some of the platforms, typically because those features only
+apply to that platform (like the solarisaio engine, or the splice engine on
+Linux).
 
 Some features are not available on FreeBSD/Solaris even if they could be
 implemented, I'd be happy to take patches for that. An example of that is