X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.1;h=8cf37780044a7ffd0f509ccae04f765cea2297d9;hp=3cdfd27b46f416886a83771af2bfc741e01456e7;hb=046395d7ab181288d14737c1d0041e98328f473f;hpb=5e4c7118da52cb62aa9361dcac16c68001813cb9 diff --git a/fio.1 b/fio.1 index 3cdfd27b..8cf37780 100644 --- a/fio.1 +++ b/fio.1 @@ -32,6 +32,9 @@ Generate per-job bandwidth logs. .B \-\-minimal Print statistics in a terse, semicolon-delimited format. .TP +.B \-\-append-terse +Print statistics in selected mode AND terse, semicolon-delimited format. +.TP .B \-\-version Display version information and exit. .TP @@ -41,6 +44,14 @@ Set terse version output format (Current version 3, or older version 2). .B \-\-help Display usage information and exit. .TP +.B \-\-cpuclock-test +Perform test and validation of internal CPU clock +.TP +.BI \-\-crctest[\fR=\fPtest] +Test the speed of the builtin checksumming functions. If no argument is given, +all of them are tested. Or a comma separated list can be passed, in which +case the given ones are tested. +.TP .BI \-\-cmdhelp \fR=\fPcommand Print help information for \fIcommand\fR. May be `all' for all commands. .TP @@ -113,12 +124,16 @@ String: a sequence of alphanumeric characters. SI integer: a whole number, possibly containing a suffix denoting the base unit of the value. Accepted suffixes are `k', 'M', 'G', 'T', and 'P', denoting kilo (1024), mega (1024^2), giga (1024^3), tera (1024^4), and peta (1024^5) -respectively. The suffix is not case sensitive. If prefixed with '0x', the -value is assumed to be base 16 (hexadecimal). A suffix may include a trailing 'b', -for instance 'kb' is identical to 'k'. You can specify a base 10 value -by using 'KiB', 'MiB', 'GiB', etc. This is useful for disk drives where -values are often given in base 10 values. Specifying '30GiB' will get you -30*1000^3 bytes. +respectively. If prefixed with '0x', the value is assumed to be base 16 +(hexadecimal). A suffix may include a trailing 'b', for instance 'kb' is +identical to 'k'. You can specify a base 10 value by using 'KiB', 'MiB','GiB', +etc. This is useful for disk drives where values are often given in base 10 +values. Specifying '30GiB' will get you 30*1000^3 bytes. +When specifying times the default suffix meaning changes, still denoting the +base unit of the value, but accepted suffixes are 'D' (days), 'H' (hours), 'M' +(minutes), 'S' Seconds, 'ms' (or msec) milli seconds, 'us' (or 'usec') micro +seconds. Time values without a unit specify seconds. +The suffixes are not case sensitive. .TP .I bool Boolean: a true or false value. `0' denotes false, `1' denotes true. @@ -146,6 +161,14 @@ otherwise has no special purpose. .BI directory \fR=\fPstr Prefix filenames with this directory. Used to place files in a location other than `./'. +You can specify a number of directories by separating the names with a ':' +character. These directories will be assigned equally distributed to job clones +creates with \fInumjobs\fR as long as they are using generated filenames. +If specific \fIfilename(s)\fR are set fio will use the first listed directory, +and thereby matching the \fIfilename\fR semantic which generates a file each +clone if not specified, but let all clones use the same if set. See +\fIfilename\fR for considerations regarding escaping certain characters on +some platforms. .TP .BI filename \fR=\fPstr .B fio @@ -155,7 +178,12 @@ specify a \fIfilename\fR for each of them to override the default. If the I/O engine is file-based, you can specify a number of files by separating the names with a `:' character. `\-' is a reserved name, meaning stdin or stdout, depending on the read/write direction -set. +set. On Windows, disk devices are accessed as \\.\PhysicalDrive0 for the first +device, \\.\PhysicalDrive1 for the second etc. Note: Windows and FreeBSD +prevent write access to areas of the disk containing in-use data +(e.g. filesystems). If the wanted filename does need to include a colon, then +escape that with a '\' character. For instance, if the filename is +"/dev/dsk/foo@3,0:c", then you would use filename="/dev/dsk/foo@3,0\:c". .TP .BI filename_format \fR=\fPstr If sharing multiple files between jobs, it is usually necessary to have @@ -285,8 +313,12 @@ read, write, and trim are accounted and reported separately. If this option is set, the fio will sum the results and report them as "mixed" instead. .TP .BI randrepeat \fR=\fPbool -Seed the random number generator in a predictable way so results are repeatable -across runs. Default: true. +Seed the random number generator used for random I/O patterns in a predictable +way so the pattern is repeatable across runs. Default: true. +.TP +.BI allrandrepeat \fR=\fPbool +Seed all random number generators in a predictable way so results are +repeatable across runs. Default: false. .TP .BI randseed \fR=\fPint Seed the random number generators based on this seed value, to be able to @@ -354,6 +386,12 @@ for files at random within the given range, limited to \fBsize\fR in total (if that is given). If \fBfilesize\fR is not specified, each created file is the same size. .TP +.BI file_append \fR=\fPbool +Perform IO after the end of the file. Normally fio will operate within the +size of a file. If this option is set, then fio will append to the file +instead. This has identical behavior to setting \fRoffset\fP to the size +of a file. This option is ignored on non-regular files. +.TP .BI blocksize \fR=\fPint[,int] "\fR,\fB bs" \fR=\fPint[,int] Block size for I/O units. Default: 4k. Values for reads, writes, and trims can be specified separately in the format \fIread\fR,\fIwrite\fR,\fItrim\fR @@ -398,6 +436,8 @@ blocksize setting. .TP .B zero_buffers Initialise buffers with all zeros. Default: fill buffers with random data. +The resulting IO buffers will not be completely zeroed, unless +\fPscramble_buffers\fR is also turned off. .TP .B refill_buffers If this option is given, fio will refill the IO buffers on every submit. The @@ -549,6 +589,11 @@ 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 +.B rbd +IO engine supporting direct access to Ceph Rados Block Devices (RBD) via librbd +without the need to use the kernel rbd driver. This ioengine defines engine specific +options. .RE .P .RE @@ -803,6 +848,26 @@ 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 cpus_allowed_policy \fR=\fPstr +Set the policy of how fio distributes the CPUs specified by \fBcpus_allowed\fR +or \fBcpumask\fR. Two policies are supported: +.RS +.RS +.TP +.B shared +All jobs will share the CPU set specified. +.TP +.B split +Each job will get a unique CPU from the CPU set. +.RE +.P +\fBshared\fR is the default behaviour, if the option isn't specified. If +\fBsplit\fR is specified, then fio will assign one cpu per job. If not enough +CPUs are given for the jobs listed, then fio will roundrobin the CPUs in +the set. +.RE +.P +.TP .BI numa_cpu_nodes \fR=\fPstr Set this job running on specified NUMA nodes' CPUs. The arguments allow comma delimited list of cpu numbers, A-B ranges, or 'all'. @@ -825,8 +890,12 @@ 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. +.BI startdelay \fR=\fPirange +Delay start of job for the specified number of seconds. Supports all time +suffixes to allow specification of hours, minutes, seconds and +milliseconds - seconds are the default if a unit is ommited. +Can be given as a range which causes each thread to choose randomly out of the +range. .TP .BI runtime \fR=\fPint Terminate processing after the specified number of seconds. @@ -951,7 +1020,7 @@ values are: .RS .RS .TP -.B md5 crc16 crc32 crc32c crc32c-intel crc64 crc7 sha256 sha512 sha1 +.B md5 crc16 crc32 crc32c crc32c-intel crc64 crc7 sha256 sha512 sha1 xxhash Store appropriate checksum in the header of each block. crc32c-intel is hardware accelerated SSE4.2 driven, falls back to regular crc32c if not supported by the system. @@ -1157,14 +1226,6 @@ Output is redirected in a file called \fBjobname.postrun.txt\fR .BI ioscheduler \fR=\fPstr Attempt to switch the device hosting the file to the specified I/O scheduler. .TP -.BI cpuload \fR=\fPint -If the job is a CPU cycle-eater, attempt to use the specified percentage of -CPU cycles. -.TP -.BI cpuchunks \fR=\fPint -If the job is a CPU cycle-eater, split the load into cycles of the -given time in milliseconds. -.TP .BI disk_util \fR=\fPbool Generate disk utilization statistics if the platform supports it. Default: true. .TP @@ -1306,6 +1367,9 @@ Attempt to use the specified percentage of CPU cycles. .BI (cpu)cpuchunks \fR=\fPint Split the load into cycles of the given time. In microseconds. .TP +.BI (cpu)exit_on_io_done \fR=\fPbool +Detect when IO threads are done, then exit. +.TP .BI (libaio)userspace_reap Normally, with the libaio engine in use, fio will use the io_getevents system call to reap newly returned events. @@ -1386,6 +1450,15 @@ Preallocate donor's file on init .BI 1: allocate space immediately inside defragment event, and free right after event .RE +.TP +.BI (rbd)rbdname \fR=\fPstr +Specifies the name of the RBD. +.TP +.BI (rbd)pool \fR=\fPstr +Specifies the name of the Ceph pool containing the RBD. +.TP +.BI (rbd)clientname \fR=\fPstr +Specifies the username (without the 'client.' prefix) used to access the Ceph cluster. .SH OUTPUT While running, \fBfio\fR will display the status of the created jobs. For example: @@ -1538,9 +1611,10 @@ 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 -(if provided) follows on a new line. Note that the first +If the \fB\-\-minimal\fR / \fB\-\-append-terse\fR options are given, the +results will be printed/appended in a semicolon-delimited format suitable for +scripted use. +A job description (if provided) follows on a new line. Note that the first number in the line is the version number. If the output has to be changed for some reason, this number will be incremented by 1 to signify that change. The fields are: