X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=README;h=5fa37f3eed33a15a15a38836cf0080edc81688fd;hp=e90f4938fc23879aab9ed57703c80c88015d55d7;hb=9d19301993967e382d7737aee01e7cbf2648099e;hpb=1b8c5af7ba80122c91dce457e18c55b34e2c28b1 diff --git a/README b/README index e90f4938..5fa37f3e 100644 --- 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 --------------- @@ -101,28 +113,27 @@ 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 ------- -On Windows Cygwin (http://www.cygwin.com/) is required in order to -build fio. To create an MSI installer package install WiX 3.7 from +On Windows, Cygwin (http://www.cygwin.com/) is required in order to +build fio. To create an MSI installer package install WiX 3.8 from http://wixtoolset.org and run dobuild.cmd from the os/windows directory. -How to compile FIO on 64-bit Windows: +How to compile fio on 64-bit Windows: - 1. Install Cygwin (http://www.cygwin.com/setup.exe). Install 'make' and all + 1. Install Cygwin (http://www.cygwin.com/). Install 'make' and all packages starting with 'mingw64-i686' and 'mingw64-x86_64'. - 2. Download ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-9-1-release/dll/x64/pthreadGC2.dll - and copy to the fio source directory. - 3. Open the Cygwin Terminal. - 4. Go to the fio directory (source files). - 5. Run 'make clean'. - 6. Run 'make'. + 2. Open the Cygwin Terminal. + 3. Go to the fio directory (source files). + 4. Run 'make clean && make -j'. -To build fio on 32-bit Windows, download x86/pthreadGC2.dll instead and do -'./configure --build-32bit-win=yes' before 'make'. +To build fio on 32-bit Windows, run './configure --build-32bit-win' before 'make'. It's recommended that once built or installed, fio be run in a Command Prompt or other 'native' console such as console2, since there are known to be display @@ -138,14 +149,14 @@ $ 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 --minimal Minimal (terse) output - --output-format=type Output format (terse,json,normal) + --output-format=type Output format (terse,json,json+,normal) --terse-version=type 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[=test] 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 @@ -162,10 +173,17 @@ $ fio --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. + --client=host Connect to specified backend(s). + --remote-config=file Tell fio server to load this local file --idle-prof=option Report cpu idleness on a system or percpu basis (option=system,percpu) or run unit work 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, @@ -199,6 +217,7 @@ 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 ? or help Show available debug options. One can specify multiple debug options: e.g. --debug=file,mem will enable @@ -293,14 +312,48 @@ Fio can connect to multiple servers this way: fio --client= --client= +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 + +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