X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=3d9229338a11c9628f18d61a2a13e6cdc8b1c263;hp=7b717f7739664f44393d67b7b6521e8ca0404eae;hb=4d4e80f2b4260f2c8b37a8612ce655502a799f7a;hpb=aa31f1f108348ba2a8749c73fa8c25f3d4630a7c diff --git a/HOWTO b/HOWTO index 7b717f77..3d922933 100644 --- a/HOWTO +++ b/HOWTO @@ -219,6 +219,25 @@ filename=str Fio normally makes up a filename based on the job name, opendir=str Tell fio to recursively add any file it can find in this directory and down the file system tree. +lockfile=str Fio defaults to not doing any locking files before it does + IO to them. If a file or file descriptor is shared, fio + can serialize IO to that file to make the end result + consistent. This is usual for emulating real workloads that + share files. The lock modes are: + + none No locking. The default. + exclusive Only one thread/process may do IO, + excluding all others. + readwrite Read-write locking on the file. Many + readers may access the file at the + same time, but writes get exclusive + access. + + The option may be post-fixed with a lock batch number. If + set, then each thread/process may do that amount of IOs to + the file before giving up the lock. Since lock acqusition is + expensive, batching the lock/unlocks will speed up IO. + readwrite=str rw=str Type of io pattern. Accepted values are: @@ -344,6 +363,8 @@ ioengine=str Defines how the job issues io to the file. The following psync Basic pread(2) or pwrite(2) io. + vsync Basic readv(2) or writev(2) IO. + libaio Linux native asynchronous io. posixaio glibc posix asynchronous io. @@ -381,7 +402,10 @@ ioengine=str Defines how the job issues io to the file. The following cycles according to the cpuload= and cpucycle= options. Setting cpuload=85 will cause that job to do nothing but burn - 85% of the CPU. + 85% of the CPU. In case of SMP machines, + use numjobs= to get desired CPU + usage, as the cpuload only loads a single + CPU at the desired rate. guasi The GUASI IO engine is the Generic Userspace Asyncronous Syscall Interface approach @@ -402,8 +426,9 @@ iodepth=int This defines how many io units to keep in flight against concurrency. iodepth_batch=int This defines how many pieces of IO to submit at once. - It defaults to the same as iodepth, but can be set lower - if one so desires. + It defaults to 1 which means that we submit each IO + as soon as it is available, but can be raised to submit + bigger batches of IO at the time. iodepth_low=int The low water mark indicating when to start filling the queue again. Defaults to the same as iodepth, meaning @@ -629,15 +654,6 @@ verify=str If writing to a file, fio can verify the file contents (timestamp, block number etc.). The block number is verified. - pattern Fill the IO buffers with a specific pattern, - that we can use to verify. Depending on the - width of the pattern, fio will fill 1/2/3/4 - bytes of the buffer at the time. The pattern - cannot be larger than a 32-bit quantity. The - given pattern is given as a postfix to this - option, ala: verify=pattern:0x5a. It accepts - both hex and dec values. - null Only pretend to verify. Useful for testing internals with ioengine=null, not for much else. @@ -663,6 +679,14 @@ verify_interval=siint Write the verification header at a finer granularity size of header_interval. blocksize should divide this evenly. +verify_pattern=int If set, fio will fill the io buffers with this + pattern. Fio defaults to filling with totally random + bytes, but sometimes it's interesting to fill with a known + pattern for io verification purposes. Depending on the + width of the pattern, fio will fill 1/2/3/4 bytes of the + buffer at the time. The verify_pattern cannot be larger than + a 32-bit quantity. + verify_fatal=bool Normally fio will keep checking the entire contents before quitting on a block verification failure. If this option is set, fio will exit the job on the first observed