X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=HOWTO;h=a8d5197cd58d9b4af4836a2eda1368a1cff28366;hb=c7c6cb4cb3114ec4ce3107e15c184e161b50122e;hp=ad4e45402172f04a4563b2974c5e997462b4d30d;hpb=675012f04dbd821cc5d22ec56930094b9c8a99e5;p=fio.git diff --git a/HOWTO b/HOWTO index ad4e4540..a8d5197c 100644 --- a/HOWTO +++ b/HOWTO @@ -267,7 +267,7 @@ filename=str Fio normally makes up a filename based on the job name, files between threads in a job or several jobs, specify a filename for each of them to override the default. If the ioengine used is 'net', the filename is the host, port, - and protocol to use in the format of =host/port/protocol. + and protocol to use in the format of =host,port,protocol. See ioengine=net for more. If the ioengine is file based, you can specify a number of files by separating the names with a ':' colon. So if you wanted a job to open /dev/sda and /dev/sdb @@ -481,6 +481,13 @@ refill_buffers If this option is given, fio will refill the IO buffers isn't specified, naturally. If data verification is enabled, refill_buffers is also automatically enabled. +scramble_buffers=bool If refill_buffers is too costly and the target is + using data deduplication, then setting this option will + slightly modify the IO buffer 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. + nrfiles=int Number of files to use for this job. Defaults to 1. openfiles=int Number of files to keep open at the same time. Defaults to @@ -517,6 +524,16 @@ ioengine=str Defines how the job issues io to the file. The following libaio Linux native asynchronous io. Note that Linux may only support queued behaviour with non-buffered IO (set direct=1 or buffered=0). + This engine also has a sub-option, + userspace_reap. To set it, use + ioengine=libaio:userspace_reap. Normally, with + the libaio engine in use, fio will use the + io_getevents system call to reap newly returned + events. With this flag turned on, the AIO ring + will be read directly from user-space to reap + events. The reaping mode is only enabled when + polling for a minimum of 0 events (eg when + iodepth_batch_complete=0). posixaio glibc posix asynchronous io. @@ -847,6 +864,9 @@ exitall When one job finishes, terminate the rest. The default is bwavgtime=int Average the calculated bandwidth over the given time. Value is specified in milliseconds. +iopsavgtime=int Average the calculated IOPS over the given time. Value + is specified in milliseconds. + create_serialize=bool If true, serialize the file creating for the jobs. This may be handy to avoid interleaving of data files, which may greatly depend on the filesystem @@ -1087,6 +1107,9 @@ write_lat_log=str Same as write_bw_log, except that this option stores io and foo_lat.log. This helps fio_generate_plot fine the logs automatically. +write_bw_log=str If given, write an IOPS log of the jobs in this job + file. See write_bw_log. + lockmem=int Pin down the specified amount of memory with mlock(2). Can potentially be used instead of removing memory or booting with less memory to simulate a smaller amount of memory. @@ -1187,13 +1210,6 @@ uid=int Instead of running as the invoking user, set the user ID to gid=int Set group ID, see uid. -userspace_libaio_reap=bool Normally, with the libaio engine in use, fio - will use the io_getevents system call to reap newly returned - events. With this flag turned on, the AIO ring will be read - directly from user-space to reap events. The reaping mode is - only enabled when polling for a minimum of 0 events (eg when - iodepth_batch_complete=0). - 6.0 Interpreting the output --------------------------- @@ -1346,25 +1362,42 @@ Split up, the format is as follows: version, jobname, groupid, error READ status: - KB IO, bandwidth (KB/sec), runtime (msec) + Total IO (KB), bandwidth (KB/sec), IOPS, runtime (msec) Submission latency: min, max, mean, deviation Completion latency: min, max, mean, deviation + Completion latency percentiles: 20 fields (see below) Total latency: min, max, mean, deviation Bw: min, max, aggregate percentage of total, mean, deviation WRITE status: - KB IO, bandwidth (KB/sec), runtime (msec) + Total IO (KB), bandwidth (KB/sec), IOPS, runtime (msec) Submission latency: min, max, mean, deviation Completion latency: min, max, mean, deviation + Completion latency percentiles: 20 fields (see below) Total latency: min, max, mean, deviation Bw: min, max, aggregate percentage of total, mean, deviation CPU usage: user, system, context switches, major faults, minor faults IO depths: <=1, 2, 4, 8, 16, 32, >=64 IO latencies microseconds: <=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000 IO latencies milliseconds: <=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000, 2000, >=2000 + Disk utilization: Disk name, Read ios, write ios, + Read merges, write merges, + Read ticks, write ticks, + Read in-queue time, write in-queue time, + Disk utilization percentage Additional Info (dependant on continue_on_error, default off): total # errors, first error code Additional Info (dependant on description being set): Text description +Completion latency percentiles can be a grouping of up to 20 sets, so +for the terse output fio writes all of them. Each field will look like this: + + 1.00%=6112 + +which is the Xth percentile, and the usec latency associated with it. + +For disk utilization, all disks used by fio are shown. So for each disk +there will be a disk utilization section. + 8.0 Trace file format ---------------------