of the Ubuntu "universe" repository.
http://packages.ubuntu.com/search?keywords=fio
-SUSE:
-Pascal Bleser <guru@unixtech.be> has fio RPMs in his repository for SUSE
-variants, you can find them here:
-http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=System/fio
-
Red Hat, CentOS & Co:
Dag Wieƫrs has RPMs for Red Hat related distros, find them here:
http://dag.wieers.com/rpm/packages/fio/
Windows:
Bruce Cran <bruce@cran.org.uk> has fio packages for Windows at
-http://www.bluestop.org/fio .
+http://www.bluestop.org/fio/ .
Mailing list
Windows
-------
-On Windows MinGW (http://www.mingw.org/) is required in order to
-build fio. To create an MSI installer package install WiX 3.6 from
-http://wix.sourceforge.net/releases/ and run dobuild.cmd from the
+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
+http://wixtoolset.org and run dobuild.cmd from the
os/windows directory.
+How to compile FIO on 64-bit Windows:
+
+ 1. Install Cygwin (http://www.cygwin.com/setup.exe). 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'.
+
+To build fio on 32-bit Windows, download x86/pthreadGC2.dll instead and do
+'./configure --build-32bit-win=yes' 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
+and signal issues when running it under a Cygwin shell
+(see http://code.google.com/p/mintty/issues/detail?id=56 for details).
+
Command line
------------
$ fio
--debug Enable some debugging options (see below)
+ --parse-only Parse options only, don't start any IO
--output Write output to file
- --timeout Runtime in seconds
+ --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)
+ --terse-version=type Terse version output format (default 3, or 2 or 4).
--version Print version info and exit
- --terse-version=type Terse version output format (default 3, or 2).
--help Print this page
+ --cpuclock-test Perform test/validation of CPU clock
--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
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
--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)
--max-jobs Maximum number of threads/processes to support
--server=args Start backend server. See Client/Server section.
--client=host Connect to specified backend.
+ --idle-prof=option Report cpu idleness on a system or percpu basis
+ (option=system,percpu) or run unit work
+ calibration only (option=calibrate).
Any parameters following the options will be assumed to be job files,
readv/writev (with queuing emulation) mmap for mmap'ed
io, syslet-rw for syslet driven read/write, splice for
using splice/vmsplice, sg for direct SG_IO io, net
- for network io, or cpuio for a cycler burner load. sg
- only works on Linux on SCSI (or SCSI-like devices, such
- as usb-storage or sata/libata driven) devices. Fio also
- has a null io engine, which is mainly used for testing
+ for network io, rdma for RDMA io, or cpuio for a
+ cycler burner load. sg only works on Linux on
+ SCSI (or SCSI-like devices, such as usb-storage or
+ sata/libata driven) devices. Fio also has a null
+ io engine, which is mainly used for testing
fio itself.
iodepth=x For async io, allow 'x' ios in flight
ratecycle=x ratemin averaged over x msecs
cpumask=x Only allow job to run on CPUs defined by mask.
cpus_allowed=x Like 'cpumask', but allow text setting of CPU affinity.
+ numa_cpu_nodes=x,y-z Allow job to run on specified NUMA nodes' CPU.
+ numa_mem_policy=m:x,y-z Setup numa memory allocation policy.
+ 'm' stands for policy, such as local, interleave,
+ bind, prefer, local. 'x, y-z' are numa node(s) for
+ memory allocation according to policy.
fsync=x If writing with buffered IO, fsync after every
'x' blocks have been written.
end_fsync=x If 'x', run fsync() after end-of-job.