X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.1;h=086cf9d007a157735e4c213ffd97c71d94dcdb82;hb=62cb17de316e5aa755228fef8ce19b5f5353a3cf;hp=75c8ec669b2d6c447f9405cf1d8bf4028685a0b3;hpb=0329ecda39a8ed42e173d25e16d39c968568d783;p=fio.git diff --git a/fio.1 b/fio.1 index 75c8ec66..086cf9d0 100644 --- a/fio.1 +++ b/fio.1 @@ -20,8 +20,8 @@ list all available tracing options. .BI \-\-output \fR=\fPfilename Write output to \fIfilename\fR. .TP -.BI \-\-timeout \fR=\fPtimeout -Limit run time to \fItimeout\fR seconds. +.BI \-\-runtime \fR=\fPruntime +Limit run time to \fIruntime\fR seconds. .TP .B \-\-latency\-log Generate per-job latency logs. @@ -70,7 +70,7 @@ Set the internal smalloc pool size to \fIkb\fP kilobytes. All fio parser warnings are fatal, causing fio to exit with an error. .TP .BI \-\-max\-jobs \fR=\fPnr -Set the maximum allowed number of jobs (threads/processes) to suport. +Set the maximum allowed number of jobs (threads/processes) to support. .TP .BI \-\-server \fR=\fPargs Start a backend server, with \fIargs\fP specifying what to listen to. See client/server section. @@ -195,7 +195,7 @@ Random reads. .B randwrite Random writes. .TP -.B rw +.B rw, readwrite Mixed sequential reads and writes. .TP .B randrw @@ -204,7 +204,7 @@ Mixed random reads and writes. .P For mixed I/O, the default split is 50/50. For certain types of io the result may still be skewed a bit, since the speed may be different. It is possible to -specify a number of IO's to do before getting a new offset, this is one by +specify a number of IO's to do before getting a new offset, this is done by appending a `:\fI\fR to the end of the string given. For a random read, it would look like \fBrw=randread:8\fR for passing in an offset modifier with a value of 8. If the postfix is used with a sequential IO pattern, then the value @@ -359,6 +359,20 @@ contents to defeat normal de-dupe attempts. This is not enough to defeat more clever block compression attempts, but it will stop naive dedupe of blocks. Default: true. .TP +.BI buffer_compress_percentage \fR=\fPint +If this is set, then fio will attempt to provide IO buffer content (on WRITEs) +that compress to the specified level. Fio does this by providing a mix of +random data and zeroes. Note that this is per block size unit, for file/disk +wide compression level that matches this setting, you'll also want to set +\fBrefill_buffers\fR. +.TP +.BI buffer_compress_chunk \fR=\fPint +See \fBbuffer_compress_percentage\fR. This setting allows fio to manage how +big the ranges of random data and zeroed data is. Without this set, fio will +provide \fBbuffer_compress_percentage\fR of blocksize random data, followed by +the remaining zeroed. With this set to some chunk size smaller than the block +size, fio can alternate random and zeroed data throughout the IO buffer. +.TP .BI nrfiles \fR=\fPint Number of files to use for this job. Default: 1. .TP @@ -495,6 +509,13 @@ Default: true. .BI offset \fR=\fPint Offset in the file to start I/O. Data before the offset will not be touched. .TP +.BI offset_increment \fR=\fPint +If this is provided, then the real offset becomes the +offset + offset_increment * thread_number, where the thread number is a counter +that starts at 0 and is incremented for each job. This option is useful if +there are several jobs which are intended to operate on a file in parallel in +disjoint segments, with even spacing between the starting points. +.TP .BI fsync \fR=\fPint How many I/Os to perform before issuing an \fBfsync\fR\|(2) of dirty data. If 0, don't sync. Default: 0. @@ -534,10 +555,6 @@ Sync file contents when job exits. Default: false. If true, sync file contents on close. This differs from \fBend_fsync\fR in that it will happen on every close, not just at the end of the job. Default: false. .TP -.BI rwmixcycle \fR=\fPint -How many milliseconds before switching between reads and writes for a mixed -workload. Default: 500ms. -.TP .BI rwmixread \fR=\fPint Percentage of a mixed workload that should be reads. Default: 50. .TP @@ -704,6 +721,11 @@ If true, serialize file creation for the jobs. Default: true. .BI create_on_open \fR=\fPbool If true, the files are not created until they are opened for IO by the job. .TP +.BI create_only \fR=\fPbool +If true, fio will only run the setup phase of the job. If files need to be +laid out or updated on disk, only that will be done. The actual job contents +are not executed. +.TP .BI pre_read \fR=\fPbool If this is given, files will be pre-read into memory before starting the given IO operation. This will also clear the \fR \fBinvalidate\fR flag, since it is @@ -958,6 +980,27 @@ the thread/process does any work. .BI gid \fR=\fPint Set group ID, see \fBuid\fR. .TP +.BI flow_id \fR=\fPint +The ID of the flow. If not specified, it defaults to being a global flow. See +\fBflow\fR. +.TP +.BI flow \fR=\fPint +Weight in token-based flow control. If this value is used, then there is a +\fBflow counter\fR which is used to regulate the proportion of activity between +two or more jobs. fio attempts to keep this flow counter near zero. The +\fBflow\fR parameter stands for how much should be added or subtracted to the +flow counter on each iteration of the main I/O loop. That is, if one job has +\fBflow=8\fR and another job has \fBflow=-1\fR, then there will be a roughly +1:8 ratio in how much one runs vs the other. +.TP +.BI flow_watermark \fR=\fPint +The maximum value that the absolute value of the flow counter is allowed to +reach before the job must wait for a lower value of the counter. +.TP +.BI flow_sleep \fR=\fPint +The period of time, in microseconds, to wait after the flow watermark has been +exceeded before retrying operations +.TP .BI clat_percentiles \fR=\fPbool Enable the reporting of percentiles of completion latencies. .TP @@ -1161,6 +1204,10 @@ Total time spent in the disk queue. Disk utilization. .RE .PD +.P +It is also possible to get fio to dump the current output while it is +running, without terminating the job. To do that, send fio the \fBUSR1\fR +signal. .SH TERSE OUTPUT If the \fB\-\-minimal\fR option is given, the results will be printed in a semicolon-delimited format suitable for scripted use - a job description @@ -1271,46 +1318,46 @@ To start the server, you would do: 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' (or ip4) -for TCP/IP v4, 'ip6' for TCP/IP v6, or 'sock' for a local unix domain socket. -'hostname' is either a hostname or IP address, and 'port' is the port to +for TCP/IP v4, 'ip6' for TCP/IP v6, 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 +1) fio \-\-server Start a fio server, listening on all interfaces on the default port (8765). -2) fio --server=ip:hostname,4444 +2) fio \-\-server=ip:hostname,4444 Start a fio server, listening on IP belonging to hostname and on port 4444. -3) fio --server=ip6:::1,4444 +3) fio \-\-server=ip6:::1,4444 Start a fio server, listening on IPv6 localhost ::1 and on port 4444. -4) fio --server=,4444 +4) fio \-\-server=,4444 Start a fio server, listening on all interfaces on port 4444. -5) fio --server=1.2.3.4 +5) fio \-\-server=1.2.3.4 Start a fio server, listening on IP 1.2.3.4 on the default port. -6) fio --server=sock:/tmp/fio.sock +6) 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 +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 +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 +fio \-\-client=server2 \-\-client=server2 .SH AUTHORS .B fio