X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.1;h=b7abc4b6f97f639e024b470b721598084ed2447b;hp=145b547ea5404a84af510f8653a8816dc35db2c4;hb=486332e567826eb284bfd9064440867f31fccd7f;hpb=8b28bd41375930664a0ff9ff9b101a88ac416ac5 diff --git a/fio.1 b/fio.1 index 145b547e..b7abc4b6 100644 --- a/fio.1 +++ b/fio.1 @@ -486,8 +486,8 @@ transfer as fio ioengine .B e4defrag IO engine that does regular EXT4_IOC_MOVE_EXT ioctls to simulate defragment activity request to DDIR_WRITE event -.TP .RE +.P .RE .TP .BI iodepth \fR=\fPint @@ -580,6 +580,32 @@ overrides the first. This may interfere with a given rate setting, if fio is asked to limit reads or writes to a certain rate. If that is the case, then the distribution may be skewed. Default: 50. .TP +.BI random_distribution \fR=\fPstr:float +By default, fio will use a completely uniform random distribution when asked +to perform random IO. Sometimes it is useful to skew the distribution in +specific ways, ensuring that some parts of the data is more hot than others. +Fio includes the following distribution models: +.RS +.TP +.B random +Uniform random distribution +.TP +.B zipf +Zipf distribution +.TP +.B pareto +Pareto distribution +.TP +.RE +.P +When using a zipf or pareto distribution, an input value is also needed to +define the access pattern. For zipf, this is the zipf theta. For pareto, +it's the pareto power. Fio includes a test program, genzipf, that can be +used visualize what the given input values will yield in terms of hit rates. +If you wanted to use zipf with a theta of 1.2, you would use +random_distribution=zipf:1.2 as the option. If a non-uniform model is used, +fio will disable use of the random map. +.TP .B norandommap Normally \fBfio\fR will cover every block of the file when doing random I/O. If this parameter is given, a new offset will be chosen without looking at past @@ -591,6 +617,26 @@ fails to allocate the map, if this option is set it will continue without a random block map. As coverage will not be as complete as with random maps, this option is disabled by default. .TP +.BI random_generator \fR=\fPstr +Fio supports the following engines for generating IO offsets for random IO: +.RS +.TP +.B tausworthe +Strong 2^88 cycle random number generator +.TP +.B lfsr +Linear feedback shift register generator +.TP +.RE +.P +Tausworthe is a strong random number generator, but it requires tracking on the +side if we want to ensure that blocks are only read or written once. LFSR +guarantees that we never generate the same offset twice, and it's also less +computationally expensive. It's not a true random generator, however, though +for IO purposes it's typically good enough. LFSR only works with single block +sizes, not with workloads that use multiple block sizes. If used with such a +workload, fio may read or write some blocks multiple times. +.TP .BI nice \fR=\fPint Run job with given nice value. See \fInice\fR\|(2). .TP @@ -639,6 +685,10 @@ is used for read vs write seperation. Average bandwidth for \fBrate\fR and \fBratemin\fR over this number of milliseconds. Default: 1000ms. .TP +.BI max_latency \fR=\fPint +If set, fio will exit the job if it exceeds this maximum latency. It will exit +with an ETIME error. +.TP .BI cpumask \fR=\fPint Set CPU affinity for this job. \fIint\fR is a bitmask of allowed CPUs the job may run on. See \fBsched_setaffinity\fR\|(2). @@ -646,6 +696,28 @@ may run on. See \fBsched_setaffinity\fR\|(2). .BI cpus_allowed \fR=\fPstr Same as \fBcpumask\fR, but allows a comma-delimited list of CPU numbers. .TP +.BI numa_cpu_nodes \fR=\fPstr +Set this job running on spcified NUMA nodes' CPUs. The arguments allow +comma delimited list of cpu numbers, A-B ranges, or 'all'. +.TP +.BI numa_mem_policy \fR=\fPstr +Set this job's memory policy and corresponding NUMA nodes. Format of +the argements: +.RS +.TP +.B [:] +.TP +.B mode +is one of the following memory policy: +.TP +.B default, prefer, bind, interleave, local +.TP +.RE +For \fBdefault\fR and \fBlocal\fR memory policy, no \fBnodelist\fR is +needed to be specified. For \fBprefer\fR, only one node is +allowed. For \fBbind\fR and \fBinterleave\fR, \fBnodelist\fR allows +comma delimited list of numbers, A-B ranges, or 'all'. +.TP .BI startdelay \fR=\fPint Delay start of job for the specified number of seconds. .TP @@ -1073,7 +1145,7 @@ The network protocol to use. Accepted values are: Transmission control protocol .TP .B udp -Unreliable datagram protocol +User datagram protocol .TP .B unix UNIX domain socket @@ -1090,6 +1162,15 @@ For TCP network connections, tell fio to listen for incoming connections rather than initiating an outgoing connection. The hostname must be omitted if this option is used. .TP +.BI (net, pingpong) \fR=\fPbool +Normal a network writer will just continue writing data, and a network reader +will just consume packages. If pingpong=1 is set, a writer will send its normal +payload to the reader, then wait for the reader to send the same payload back. +This allows fio to measure network latencies. The submission and completion +latencies then measure local time spent sending or receiving, and the +completion latency measures how long it took for the other end to receive and +send back. +.TP .BI (e4defrag,donorname) \fR=\fPstr File will be used as a block donor (swap extents between files) .TP