Lines Matching refs:fio

5 2. How fio works
6 3. Running fio
16 fio was originally written to save me the hassle of writing special test
27 reads using asynchronous io. fio needed to be flexible enough to
30 2.0 How fio works
32 The first step in getting fio to simulate a desired io workload, is
36 sections describing the jobs involved. When run, fio parses this file
71 3.0 Running fio
76 Running fio is normally the easiest part - you just give it the job file
79 $ fio job_file
82 more than one job file on the command line, fio will serialize the running
92 --name option that fio sees, it will start a new job with that name.
98 fio does not need to run as root, except if the files or devices specified
105 As previously described, fio accepts one or more job files describing
130 described parameters are shared. As no filename= option is given, fio
134 $ fio --name=global --rw=randread --size=128m --name=job1 --name=job2
160 $ fio --name=random-writers --ioengine=libaio --iodepth=4 --rw=randwrite --bs=32k --direct=0 --size…
162 When fio is utilized as a basis of any reasonably large test suite, it might be
165 .fio file with 'include filename' directive, as in the following example:
167 ; -- start job file including.fio --
171 include glob-include.fio
178 include test-include.fio
179 ; -- end job file including.fio --
181 ; -- start job file glob-include.fio --
184 ; -- end job file glob-include.fio --
186 ; -- start job file test-include.fio --
189 ; -- end job file test-include.fio --
200 fio also supports environment variable expansion in job files. Any
207 As an example, let's look at a sample fio invocation and job file:
209 $ SIZE=64m NUMJOBS=4 fio jobfile.fio
227 fio ships with a few example job files, you can also look there for
233 Additionally, fio has a set of reserved keywords that will be replaced
299 With the above in mind, here follows the complete list of fio job
303 name printed by fio for this job. Otherwise the job
340 to have fio generate the exact names that you want. By default,
341 fio will name a file based on the default file format
358 be set to have fio generate filenames that are shared between
364 opendir=str Tell fio to recursively add any file it can find in this
368 IO to them. If a file or file descriptor is shared, fio
412 'sequential' is only useful for random IO, where fio would
431 the fio will sum the results and report them as "mixed"
456 fadvise_hint=bool By default, fio will use fadvise() to advise the kernel
460 If set, fio will use POSIX_FADV_SEQUENTIAL for sequential
467 and filesize options are given, fio will divide this size
469 fio will use the full size of the given files or devices.
472 size=20% is given, fio will use 20% of the full size of the
476 io_limit=int Normally fio operates within the region set by 'size', which
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
484 40G, then fio will do 40G of IO within the 0..20G region.
486 filesize=int Individual file sizes. May be a range, in which case fio
491 file_append=bool Perform IO after the end of the file. Normally fio will
493 fio will append to the file instead. This has identical
530 and fio will mix the issued io block sizes. The issued
551 fio will fill in the remaining values evenly. So a bssplit
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
584 refill_buffers If this option is given, fio will refill the IO buffers
597 buffer_compress_percentage=int If this is set, then fio will attempt to
608 setting allows fio to manage how big the ranges of random
609 data and zeroed data is. Without this set, fio will
612 to some chunk size smaller than the block size, fio can
616 buffer_pattern=str If set, fio will fill the io buffers with this
623 dedupe_percentage=int If set, fio will generate this percentage of
637 file_service_type=str Defines how fio decides which file from a job to
651 given, fio will switch to a new random file after 4 ios
694 to. This is mainly used to exercise fio
732 simulate data transfer as fio ioengine.
765 generated by fio backend. (see the example
785 eye on the IO depth distribution in the fio output to verify
799 set to 0, then fio will always check for completed
805 that fio will attempt to keep the queue full at all times.
807 after fio has filled the queue of 16 requests, it will let
838 perform. When fio reaches this number, it will exit normally
840 of IO that will be done, it will only stop fio if this
845 32 as a parameter, fio will sync the file for every 32
846 writes issued. If fio is using non-buffered io, we may
864 So if you do sync_file_range=wait_before,write:8, fio would
877 fsync_on_close=bool If true, fio will fsync() a dirty file on close.
887 if fio is asked to limit reads or writes to a certain rate.
890 random_distribution=str:float By default, fio will use a completely uniform
894 fio includes the following distribution models:
907 model is used, fio will disable use of the random map.
918 norandommap Normally fio will cover every block of the file when doing
919 random IO. If this option is given, fio will just get a
927 softrandommap=bool See norandommap. If fio runs with the random block map
947 sizes. If used with such a workload, fio may read or write
972 defaults to 1 which will make fio wait 'thinktime' usecs
988 ratemin=int Tell fio to do whatever it can to maintain at least this
999 rate_iops_min=int If fio doesn't meet this rate of IO, it will cause
1003 latency_target=int If set, fio will attempt to find the max performance
1017 max_latency=int If set, fio will exit the job if it exceeds this maximum
1039 cpus_allowed_policy=str Set the policy of how fio distributes the CPUs
1047 specified. If split is specified, then fio will will assign
1049 listed, then fio will roundrobin the CPUs in the set.
1054 fio must be built on a system with libnuma-dev(el) installed.
1067 startdelay=time Start this job the specified number of seconds after fio
1072 runtime=time Tell fio to terminate processing after the specified number
1077 time_based If set, fio will run for the duration of the runtime
1082 ramp_time=time If set, fio will run the specified workload for this amount
1171 create_only=bool If true, fio will only run the setup phase of the job.
1202 verify=str If writing to a file, fio can verify the file contents
1230 the fastest software checksum that fio
1252 a read or random read, fio will assume that it should
1257 verifysort=bool If set, fio will sort written verify blocks when it deems
1274 verify_pattern=str If set, fio will fill the io buffers with this
1278 width of the pattern, fio will fill 1/2/3/4 bytes of the
1284 verify_fatal=bool Normally fio will keep checking the entire contents
1286 option is set, fio will exit the job on the first observed
1297 causing fio to offload the duty of verifying IO contents
1303 verify_async_cpus=str Tell fio to set the given CPU affinity on the
1314 holding this meta data. If this option is enabled, fio
1317 verify_backlog_batch=int Control how many blocks fio will verify
1326 workload, save its current state. This allows fio to replay
1334 verify_state_load=bool If a verify termination trigger was used, fio stores
1336 verification time so that fio knows how far it should verify.
1337 Without this information, fio will run a full verification
1363 thread fio defaults to forking jobs, however if this option is
1364 given, fio will use pthread_create(3) to create threads
1380 may also be a blktrace binary file, which allows fio
1389 setting this variable fio will not respect the timestamps and
1408 independent fio invocations. Unfortuantely this also breaks
1424 fio will still append the type of log. So if one specifies
1437 is given, fio will still append the type of log.
1439 log_avg_msec=int By default, fio will log an entry in the iops, latency,
1442 this option makes fio average the each log entry over the
1449 log_compression=int If this is set, fio will compress the IO logs as
1464 fio will store the log files in a compressed format. They
1465 can be decompressed with fio, using the --inflate-log
1512 --percentile_list=99.5:99.9 will cause fio to report
1526 is very fast (and fio is heavy on time calls). Fio will
1551 continue_on_error=str Normally fio will exit the job on the first observed
1552 failure. If this option is set, fio will continue the job when
1602 cgroup_nodelete=bool Normally fio will delete the cgroups it has created after
1618 proportion of activity between two or more jobs. fio attempts
1637 [libaio] userspace_reap Normally, with the libaio engine in use, fio will use
1660 be the starting port number since fio will use a range of ports.
1689 [net] listen For TCP network connections, tell fio to listen for incoming
1697 allows fio to measure network latencies. The submission
1722 fio spits out a lot of output. While running, fio will display the
1767 When fio is done (or interrupted by ctrl-c), it will show the data for
1796 value can be in milliseconds or microseconds, fio will choose
1827 time from when IO leaves fio and when it gets completed.
1864 It is also possible to get fio to dump the current output while it is
1865 running, without terminating the job. To do that, send fio the USR1 signal.
1867 parameter, or by creating a file in /tmp named fio-dump-status. If fio
1875 of the results, fio can output the results in a semicolon separated format.
1890 terse version, fio version, jobname, groupid, error
1918 for the terse output fio writes all of them. Each field will look like this:
1924 For disk utilization, all disks used by fio are shown. So for each disk
1956 fio version 2 iolog
1993 fio implements a balloon approach to create a thread per CPU that runs at
2008 write phase has completed, fio switches to reads and verifies everything
2012 on the write phase being completed, as fio otherwise has no idea how much
2015 With verification triggers, fio supports dumping the current write state
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
2045 Our write workload is in write-test.fio. We want to cut power to 'server'
2047 or our local machine, 'localbox'. On the server, we'll start the fio
2050 server# fio --server
2054 localbox$ fio --client=server --trigger-file=/tmp/my-trigger --trigger-remote="bash -c \"echo b > /…
2056 We set /tmp/my-trigger as the trigger file, and we tell fio to execute
2066 then have run fio with a local trigger instead:
2068 localbox$ fio --client=server --trigger-file=/tmp/my-trigger --trigger="ipmi-reboot server"
2070 For this case, fio would wait for the server to send us the write state,
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,