X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=76effeef9e1b2bc2c9d0254301a9c9042dd50692;hp=8073240ef14074b5007bafa4296b913f1951f647;hb=de98bd30b02bd89a78059d162b2c8426e889703d;hpb=771e58befea806d2d881953050c4e65329eee382 diff --git a/HOWTO b/HOWTO index 8073240e..76effeef 100644 --- a/HOWTO +++ b/HOWTO @@ -9,6 +9,7 @@ Table of contents 6. Normal output 7. Terse output 8. Trace file format +9. CPU idleness profiling 1.0 Overview and history ------------------------ @@ -284,6 +285,32 @@ filename=str Fio normally makes up a filename based on the job name, stdin or stdout. Which of the two depends on the read/write direction set. +filename_format=str + If sharing multiple files between jobs, it is usually necessary + to have fio generate the exact names that you want. By default, + fio will name a file based on the default file format + specification of jobname.jobnumber.filenumber. With this + option, that can be customized. Fio will recognize and replace + the following keywords in this string: + + $jobname + The name of the worker thread or process. + + $jobnum + The incremental number of the worker thread or + process. + + $filenum + The incremental number of the file for that worker + thread or process. + + To have dependent jobs share a set of files, this option can + be set to have fio generate filenames that are shared between + the two. For instance, if testfiles.$filenum is specified, + file number 4 for any job will be named testfiles.4. The + default of $jobname.$jobnum.$filenum will be used if + no other format specifier is given. + opendir=str Tell fio to recursively add any file it can find in this directory and down the file system tree. @@ -301,11 +328,6 @@ lockfile=str Fio defaults to not locking any files before it does 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 acquisition is - expensive, batching the lock/unlocks will speed up IO. - readwrite=str rw=str Type of io pattern. Accepted values are: @@ -409,7 +431,7 @@ filesize=int Individual file sizes. May be a range, in which case fio fill_device=bool fill_fs=bool Sets size to something really large and waits for ENOSPC (no space left on device) as the terminating condition. Only makes - sense with sequential write. For a read workload, the mount + sense with sequential write. For a read workload, the mount point will be filled first then IO started on the result. This option doesn't make sense if operating on a raw device node, since the size of that is already known by the file system. @@ -775,7 +797,7 @@ random_generator=str Fio supports the following engines for generating block sizes, not with workloads that use multiple block sizes. If used with such a workload, fio may read or write some blocks multiple times. - + nice=int Run the job with the given nice value. See man nice(2). prio=int Set the io priority value of this job. Linux limits us to @@ -1402,6 +1424,9 @@ that defines them is selected. [netsplice] port=int [net] port=int The TCP or UDP port to bind to or connect to. +[netsplice] nodelay=bool +[net] nodelay=bool Set TCP_NODELAY on TCP connections. + [netsplice] protocol=str [netsplice] proto=str [net] protocol=str @@ -1693,3 +1718,18 @@ write Write 'length' bytes beginning from 'offset' sync fsync() the file datasync fdatasync() the file trim trim the given file from the given 'offset' for 'length' bytes + + +9.0 CPU idleness profiling + +In some cases, we want to understand CPU overhead in a test. For example, +we test patches for the specific goodness of whether they reduce CPU usage. +fio implements a balloon approach to create a thread per CPU that runs at +idle priority, meaning that it only runs when nobody else needs the cpu. +By measuring the amount of work completed by the thread, idleness of each +CPU can be derived accordingly. + +An unit work is defined as touching a full page of unsigned characters. Mean +and standard deviation of time to complete an unit work is reported in "unit +work" section. Options can be chosen to report detailed percpu idleness or +overall system idleness by aggregating percpu stats.