X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=README;h=26b59099e5e86886a8255a0a36a34fb7b36d2574;hp=89a88e9615cbc2dea6ef7a0f00b0859ecb92d9f8;hb=bebe639808147d587bbe776566d390b9ff98773f;hpb=5b9a7f2232151d4bb80295be743a6f435f054662 diff --git a/README b/README index 89a88e96..26b59099 100644 --- a/README +++ b/README @@ -16,7 +16,10 @@ fio resides in a git repo, the canonical place is: git://git.kernel.dk/fio.git -The http protocol also works, path is the same. +If you are inside a corporate firewall, git:// may not always work for +you. In that case you can use the http protocol, path is the same: + +http://git.kernel.dk/fio.git Snapshots are frequently generated and they include the git meta data as well. You can download them here: @@ -130,19 +133,25 @@ $ fio --debug Enable some debugging options (see below) --output Write output to file --timeout Runtime in seconds - --latency-log Generate per-job latency logs - --bandwidth-log Generate per-job bandwidth logs + --latency-log Generate per-job latency logs + --bandwidth-log Generate per-job bandwidth logs --minimal Minimal (terse) output --version Print version info and exit + --terse-version=type Terse version output format --help Print this page - --cmdhelp=cmd Print command help, "all" for all of them + --cmdhelp=cmd Print command help, "all" for all of them --showcmd Turn a job file into command line options - --readonly Turn on safety read-only checks, preventing writes + --readonly Turn on safety read-only checks, preventing + writes --eta=when When ETA estimate should be printed - May be "always", "never" or "auto" - --section=name Only run specified section in job file + May be "always", "never" or "auto" + --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) --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. Any parameters following the options will be assumed to be job files, @@ -286,11 +295,8 @@ The job file parameters are: 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. + read_iolog=x Open and read io pattern from file 'x'. The file format + is described in the HOWTO. 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. Specify a separate file @@ -311,13 +317,66 @@ The job file parameters are: +Client/server +------------ + +Normally you would run fio as a stand-alone application on the machine +where the IO workload should be generated. However, it is also possible to +run the frontend and backend of fio separately. This makes it possible to +have a fio server running on the machine(s) where the IO workload should +be running, while controlling it from another machine. + +To start the server, you would do: + +fio --server=args + +on that machine, where args defines what fio listens to. The arguments +are of the form 'type:hostname or IP:port'. 'type' is either 'ip' for +TCP/IP, or 'sock' for a local unix domain socket. 'hostname' is either +a hostname or IP address, and 'port' is the port to listen to (only valid +for TCP/IP, not a local socket). Some examples: + +1) fio --server + + Start a fio server, listening on all interfaces on the default port (8765). + +2) fio --server=ip:hostname:4444 + + Start a fio server, listening on IP belonging to hostname and on port 4444. + +3) fio --server=:4444 + + Start a fio server, listening on all interfaces on port 4444. + +4) fio --server=1.2.3.4 + + Start a fio server, listening on IP 1.2.3.4 on the default port. + +5) fio --server=sock:/tmp/fio.sock + + Start a fio server, listening on the local socket /tmp/fio.sock. + +When a server is running, you can connect to it from a client. The client +is run with: + +fio --local-args --client=server --remote-args + +where --local-args are arguments that are local to the client where it is +running, 'server' is the connect string, and --remote-args and +are sent to the server. The 'server' string follows the same format as it +does on the server side, to allow IP/hostname/socket and port strings. +You can connect to multiple clients as well, to do that you could run: + +fio --client=server2 --client=server2 + + Platforms --------- -Fio works on (at least) Linux, Solaris, AIX, OSX, NetBSD, 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). +Fio works on (at least) Linux, Solaris, AIX, HP-UX, OSX, NetBSD, 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). 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