Lines Matching +refs:is +refs:completion +refs:line

23 A test work load is difficult to define, though. There can be any number
32 The first step in getting fio to simulate a desired io workload, is
35 is a global section defining shared parameters, and one or more job
56 IO depth If the io engine is async, how large a queuing
73 See the README file for command line parameters, there are only a few
76 Running fio is normally the easiest part - you just give it the job file
82 more than one job file on the command line, fio will serialize the running
83 of those files. Internally that is the same as using the 'stonewall'
87 parameters on the command line. The command line parameters are identical
90 mirror command line option would be --iodepth 2 or --iodepth=2. You can
91 also use the command line for giving more than one job entry. For each
93 Command line entries following a --name entry will apply to that job,
94 until there are no more entries or a new --name entry is seen. This is
96 job until a new [] job entry is seen.
106 what it is supposed to do. The job file format is the classic ini file,
111 several global sections if so desired. A job is only affected by a global
112 section residing above it. If the first character in a line is a ';' or a
113 '#', the entire line is discarded as a comment.
130 described parameters are shared. As no filename= option is given, fio
132 line, this job would look as follows:
155 fork 4 identical jobs. The result is 4 processes each randomly writing
157 have given the parameters on the command line. For this case, you would
162 When fio is utilized as a basis of any reasonably large test suite, it might be
204 is defined, or VARNAME is the empty string, the empty string will be
240 These can be used on the command line or in the job file, and will be
242 is run. Simple math is also supported on these keywords, so you can
256 a string. Anywhere a numeric value is required, an arithmetic expression
257 may be used, provided it is surrounded by parentheses. Supported operators
267 For time values in expressions, units are microseconds by default. This is
271 str String. This is a sequence of alpha characters.
278 meaning kilo, mega, giga, tera, and peta. The suffix is not case
279 sensitive, and you may also include trailing 'b' (eg 'kb' is the same
282 1024 is 1k and 1024k is 1m and so on, unless the suffix is explicitly
283 set to a base 10 value using 'kib', 'mib', 'gib', etc. If that is the
284 case, then 1000 is used as the multiplier. This can be handy for
288 include a prefix to indicate numbers base. If 0x is used, the number
289 is assumed to be hexadecimal. See irange.
304 name is used. On the command line this parameter has the
309 dump this text description when this job is run. It's
320 the ioengine used is 'net', the filename is the host, port,
322 See ioengine=net for more. If the ioengine is file based, you
333 is "/dev/dsk/foo@3,0:c", then you would use
334 filename="/dev/dsk/foo@3,0\:c". '-' is a reserved name, meaning
339 If sharing multiple files between jobs, it is usually necessary
359 the two. For instance, if testfiles.$filenum is specified,
362 no other format specifier is given.
368 IO to them. If a file or file descriptor is shared, fio
370 consistent. This is usual for emulating real workloads that
391 For the mixed io types, the default is to split them 50/50.
393 since the speed may be different. It is possible to specify
394 a number of IO's to do before getting a new offset, this is
398 suffix is used with a sequential IO pattern, then the value
404 rw_sequencer=str If an offset modifier is given by appending a number to
405 the rw=<str> line, then this option controls how that
412 'sequential' is only useful for random IO, where fio would
417 that. As sequential IO is already sequential, setting
423 kb_base=int The base unit for a kilobyte. The defacto base is 2^10, 1024.
430 accounted and reported separately. If this option is set,
438 be able to control what sequence of output is being generated.
442 fallocate=str Whether pre-allocation is performed when laying down files.
452 May not be available on all supported platforms. 'keep' is only
457 on what IO patterns it is likely to issue. Sometimes you
464 this many bytes has been transferred, unless runtime is
470 If the files do not exist, size must be given. It is also
472 size=20% is given, fio will use 20% of the full size of the
478 IO to be performed. Sometimes that is not what you want. With
479 this option, it is possible to define just the amount of IO
480 that fio should do. For instance, if 'size' is set to 20G and
481 'io_size' is set to 5G, fio will perform IO within the first
482 20G but exit when 5G have been done. The opposite is also
483 possible - if 'size' is set to 20G, and 'io_size' is set to
488 and limited to 'size' in total (if that is given). If not
489 given, each created file is the same size.
492 operate within the size of a file. If this option is set, then
495 is ignored on non-regular files.
503 since the size of that is already known by the file system.
509 can be given for both read and writes. If a single int is
510 given, it will apply to both. If a second int is specified
512 the format is either bs=read_and_write or bs=read,write,trim.
523 Minimum alignment is typically 512b for using direct IO,
525 option is mutually exclusive with using a random map for
540 block sizes issued. The format for this option is:
550 Ordering does not matter. If the percentage is left blank,
557 always add up to 100, if bssplit is given a range that adds
561 writes. The format is identical to what bs= accepts. You
570 bs_unaligned If this option is given, any byte size value within bsrange
574 bs_is_seq_rand If this option is set, fio will use the normal read,write
579 zero_buffers If this option is given, fio will init the IO buffers to
580 all zeroes. The default is to fill them with random data.
582 unless scramble_buffers is also turned off.
584 refill_buffers If this option is given, fio will refill the IO buffers
585 on every submit. The default is to only fill it at init
587 isn't specified, naturally. If data verification is enabled,
588 refill_buffers is also automatically enabled.
590 scramble_buffers=bool If refill_buffers is too costly and the target is
593 de-dupe attempts. This is not enough to defeat more clever
597 buffer_compress_percentage=int If this is set, then fio will attempt to
600 random data and a fixed pattern. The fixed pattern is either
602 pattern option is used, it might skew the compression ratio
603 slightly. Note that this is per block size unit, for file/disk
609 data and zeroed data is. Without this set, fio will
617 pattern. If not set, the contents of io buffers is defined by
643 is the default.
650 often to switch to a new file. So if option random:4 is
657 sync Basic read(2) or write(2) io. lseek(2) is
677 mmap File is memory mapped and data copied
680 splice splice(2) is used to transfer the data and
689 the target is an sg character device
694 to. This is mainly used to exercise fio
718 guasi The GUASI IO engine is the Generic Userspace
756 The 'filename' option is used to specify host,
777 the file. The default is 1 for each file defined in this
781 verify_async is in use). Even async engines may impose OS
784 direct=1, since buffered IO is not async on that OS. Keep an
786 that the achieved depth is as expected. Default: 1.
791 as soon as it is available, but can be raised to submit
798 hit the limit set by iodepth_low. If this variable is
806 If iodepth is set to eg 16 and iodepth_low is set to 4, then
810 direct=bool If value is true, use non-buffered io. This is usually
814 atomic=bool If value is true, attempt to use atomic direct IO. Atomic
819 buffered=bool If value is true, use buffered io. This is the opposite
826 offset_increment=int If this is provided, then the real offset becomes
828 number is a counter that starts at 0 and is incremented for
829 each sub-job (i.e. when numjobs option is specified). This
830 option is useful if there are several jobs which are intended
841 condition is met before other end-of-job criteria.
846 writes issued. If fio is using non-buffered io, we may
847 not sync the file. The exception is the sg io engine, which
852 In FreeBSD and Windows there is no fdatasync(), this falls back to
867 This option is Linux specific.
872 and is large enough for the specified write phase, nothing
884 rwmixread and rwmixwrite is given and the values do not add
887 if fio is asked to limit reads or writes to a certain rate.
888 If that is the case, then the distribution may be skewed.
892 it is useful to skew the distribution in specific ways,
893 ensuring that some parts of the data is more hot than others.
901 is also needed to define the access pattern. For zipf, this
902 is the zipf theta. For pareto, it's the pareto power. Fio
907 model is used, fio will disable use of the random map.
911 is fully random. It can be set from anywhere from 0 to 100.
914 and random IO, at the given percentages. It is possible to
919 random IO. If this option is given, fio will just get a
923 is used with verify= and multiple blocksizes (via bsrange=),
928 enabled and it fails to allocate the map, if this option is
930 will not be as complete as with random maps, this option is
939 Tausworthe is a strong random number generator, but it
964 Only valid if thinktime is set - pretend to spend CPU time
970 Only valid if thinktime is set - control how many blocks
977 if the latter is larger.
979 rate=int Cap the bandwidth used by this job. The number is in bytes/sec,
990 the job to exit. The same format as rate is used for
995 job is given a block size range instead of a fixed value,
996 the smallest block size is used as the metric. The same format
997 as rate is used for read vs write separation.
1000 the job to exit. The same format as rate is used for read vs
1005 latency below this target. The values is given in microseconds.
1009 that the job is run at varying queue depths to test the
1010 performance. The value is given in microseconds.
1023 cpumask=int Set the CPU affinity of this job. The parameter given is a
1046 'shared' is the default behaviour, if the option isn't
1047 specified. If split is specified, then fio will will assign
1059 `mode' is one of the following memory policy:
1061 For `default' and `local' memory policy, no node is
1063 For `prefer', only one node is allowed.
1074 a specified job will run, so this parameter is handy to
1086 that the ramp_time is considered lead in time for a job,
1088 or runtime is specified.
1109 a filename is given after the option. The
1110 format is mem=mmap:/path/to/file.
1116 The area allocated is a function of the maximum allowed
1121 Linux system. Fio assumes a huge page is 4MB in size. So
1124 iodepth= is used) and multiply by the maximum bs set. Then
1135 Note that the given alignment is applied to the first IO unit
1137 are given by the bs used. In other words, if using a bs that is
1139 be aligned to this value. If using a bs that is not page
1140 aligned, the alignment of subsequent IO memory buffers is the
1147 hugepage-size=Xm is the preferred way to set this to avoid
1150 exitall When one job finishes, terminate the rest. The default is
1151 to wait for each job to finish, sometimes that is not the
1155 is specified in milliseconds.
1158 is specified in milliseconds.
1165 create_fsync=bool fsync the data file after creation. This is the
1176 pre_read=bool If this is given, files will be pre-read into memory before
1178 the 'invalidate' flag, since it is pointless to pre-read
1200 verify is set. Defaults to 1.
1241 number is verified. The io sequence number is
1250 system to make sure that the written data is also
1251 correctly read back. If the data direction given is
1258 it faster to read them back in a sorted manner. This is
1286 option is set, fio will exit the job on the first observed
1309 other words, everything is written then everything is read
1314 holding this meta data. If this option is enabled, fio
1318 if verify_backlog is set. If not set, will default to
1320 is read back and verified). If verify_backlog_batch is
1322 if verify_backlog_batch is larger than verify_backlog, some
1327 up until that point, if the verify state is loaded for the
1328 verify read phase. The format of the filename is, roughly,
1329 <type>-<jobname>-<jobindex>-verify.state. <type> is "local"
1350 the same thing. Each thread is reported separately; to see
1356 This is especially true if 'numjobs' is used; looking at
1363 thread fio defaults to forking jobs, however if this option is
1387 is to attempt to respect the time stamps within the log and
1391 respecting ordering. The result is the same I/O pattern to a
1395 default behavior is to replay the IOPS onto the major/minor
1396 device that each IOP was recorded from. This is sometimes
1416 filename. For this option, the suffix is _bw.x.log, where
1417 x is the index of the job (1..N, where N is the number of
1421 submission, completion, and total latencies instead. If no
1422 filename is given with this option, the default filename of
1423 "jobname_type.log" is used. Even if the filename is given,
1429 and foo_lat.x.log, where x is the index of the job (1..N,
1430 where N is the number of jobs). This helps fio_generate_plot
1433 write_iops_log=str Same as write_bw_log, but writes IOPS. If no filename is
1435 "jobname_type.x.log" is used,where x is the index of the job
1436 (1..N, where N is the number of jobs). Even if the filename
1437 is given, fio will still append the type of log.
1446 log_offset=int If this is set, the iolog options will include the byte
1449 log_compression=int If this is set, fio will compress the IO logs as
1451 reaches the specified size, that chunk is removed and
1454 savings for longer runs. The downside is that the
1456 it may impact the run. This, however, is also true if
1463 log_store_compressed=bool If set, and log_compression is also set,
1466 command line parameter. The files will be stored with a
1472 The amount specified is per worker.
1475 through system(3). Output is redirected in a file called
1479 though system(3). Output is redirected in a file called
1495 disable_clat=bool Disable measurements of completion latency numbers. See
1505 completion latencies.
1508 for completion latencies. Each number is a floating
1510 the list is 20. Use ':' to separate the numbers, and
1513 the values of completion latency below which 99.5% and
1525 cpu is the preferred clocksource if it is reliable, as it
1526 is very fast (and fio is heavy on time calls). Fio will
1528 considered reliable on the system it is running on, unless
1529 another clocksource is specifically set. For x86/x86-64 CPUs,
1552 failure. If this option is set, fio will continue the job when
1553 there is a 'non-fatal error' (EIO or EILSEQ) until the runtime
1554 is exceeded or the I/O size specified is completed. If this
1555 option is used, there are two more stats that are appended,
1557 given in the stats is the first error that was hit during the
1581 errors for given error type is separated with ':'. Error
1588 error_dump=bool If set dump every error even if it is non fatal, true
1603 the job completion. To override this behavior and to leave
1604 cgroups around after the job completion, set cgroup_nodelete=1.
1606 files after job completion. Default: false
1616 flow=int Weight in token-based flow control. If this value is used, then
1617 there is a 'flow counter' which is used to regulate the
1621 counter on each iteration of the main I/O loop. That is, if
1626 counter is allowed to reach before the job must wait for a
1633 ioengine is in use. These are used identically to normal parameters, with the
1634 caveat that when used on the command line, they must come after the ioengine
1635 that defines them is selected.
1640 from user-space to reap events. The reaping mode is only
1653 If the job is a TCP listener or UDP reader, the hostname is not
1654 used and must be omitted unless it is a valid UDP multicast
1658 [net] port=int The TCP or UDP port to bind to or connect to. If this is used
1684 When the protocol is TCP or UDP, the port must also be given,
1685 as well as the hostname if the job is a TCP listener or UDP
1687 used and the port is invalid.
1691 hostname must be omitted if this option is used.
1695 is set, a writer will send its normal payload to the reader,
1698 and completion latencies then measure local time spent
1699 sending or receiving, and the completion latency measures
1751 command line as is needed. For instance, if you have 10 readers and 10
1761 listed first, then write speed), and the estimated completion percentage
1763 the following groups (if any). Note that the string is displayed in order,
1765 first character is the first job defined in the job file, and so forth.
1767 When fio is done (or interrupted by ctrl-c), it will show the data for
1784 The client number is printed, along with the group id and error of that
1785 thread. Below is the io statistics, here for writes. In the order listed,
1793 standard deviation). This is the time it took to submit
1794 the io. For sync io, the slat is really the completion
1795 latency, since queue/complete is one operation there. This
1798 above, milliseconds is the best scale. Note: in --minimal mode
1801 time from submission to completion of the io pieces. For
1803 as the time from submit to complete is basically just
1807 this thread received in this group. This last value is
1826 IO latencies= The distribution of IO completion latencies. This is the
1854 Each value is printed for both reads and writes, with reads first. The
1864 It is also possible to get fio to dump the current output while it is
1876 The format is one long line of values, such as:
1881 The job description (if provided) follows on a second line.
1883 To enable terse output, use the --minimal command line option. The first
1884 value is the version of the terse output format. If the output has to
1888 Split up, the format is as follows:
1922 which is the Xth percentile, and the usec latency associated with it.
1931 is unsupported since version 1.20-rc3 (March 2008). It will still be described
1934 In any case the trace is a simple text file with a single action per line.
1939 Each line represents a single io action in the following format:
1945 This format is not supported in Fio versions => 1.20-rc3.
1954 The first line of the trace file has to be:
1964 The filename is given as an absolute path. The action can be one of these:
1977 The filename is given as an absolute path, and has to have been added and opened
1981 wait Wait for 'offset' microseconds. Everything below 100 is discarded.
1998 An unit work is defined as touching a full page of unsigned characters. Mean
1999 and standard deviation of time to complete an unit work is reported in "unit
2006 Fio is usually run in one of two ways, when data verification is done. The
2007 first is a normal write job of some sort with verify enabled. When the
2009 it wrote. The second model is running just the write phase, and then later
2017 and know exactly where to stop. This is useful for testing cases where
2018 power is cut to a server in a managed fashion, for instance.
2025 The write state is relatively small, on the order of hundreds of bytes
2029 A trigger is invoked either through creation ('touch') of a specified
2030 file in the system, or through a timeout setting. If fio is run with
2037 fio is running as a server backend, it will send the job states back
2039 specified. If a local trigger is specified, the server will still send
2045 Our write workload is in write-test.fio. We want to cut power to 'server'
2076 the verify_state_load option. If that is set, fio will load the previously
2077 stored state. For a local fio run this is done by loading the files directly,