X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=f61b4c1daab6b54831d5195dc36000be502461ab;hp=f4ebac94348eef97b46b70b80dce8d1e3130dda4;hb=73170f19408559ed7e318f93b21e5cbbf13725bd;hpb=61697c37566a211ad3fd70f46397d9b7675b0fc2 diff --git a/HOWTO b/HOWTO index f4ebac94..f61b4c1d 100644 --- a/HOWTO +++ b/HOWTO @@ -49,7 +49,7 @@ bottom, it contains the following basic parameters: IO engine How do we issue io? We could be memory mapping the file, we could be using regular read/write, we - could be using splice, async io, or even + could be using splice, async io, syslet, or even SG (SCSI generic sg). IO depth If the io engine is async, how large a queuing @@ -203,7 +203,9 @@ directory=str Prefix filenames with this directory. Used to places files filename=str Fio normally makes up a filename based on the job name, thread number, and file number. If you want to share files between threads in a job or several jobs, specify - a filename for each of them to override the default. + a filename for each of them to override the default. If + the ioengine used is 'net', the filename is the host and + port to connect to in the format of =host:port. rw=str Type of io pattern. Accepted values are: @@ -268,6 +270,9 @@ ioengine=str Defines how the job issues io to the file. The following vmsplice(2) to transfer data from user space to the kernel. + syslet-rw Use the syslet system calls to make + regular read/write async. + sg SCSI generic sg v3 io. May either be synchronous using the SG_IO ioctl, or if the target is an sg character device @@ -278,6 +283,12 @@ ioengine=str Defines how the job issues io to the file. The following to. This is mainly used to exercise fio itself and for debugging/testing purposes. + net Transfer over the network to given host:port. + 'filename' must be set appropriately to + filename=host:port regardless of send + or receive, if the latter only the port + argument is used. + iodepth=int This defines how many io units to keep in flight against the file. The default is 1 for each file defined in this job, can be overridden with a larger value for higher @@ -545,6 +556,8 @@ Client1 (g=0): err= 0: bw (KiB/s) : min= 0, max= 1196, per=51.00%, avg=664.02, stdev=681.68 cpu : usr=1.49%, sys=0.25%, ctx=7969 IO depths : 1=0.1%, 2=0.3%, 4=0.5%, 8=99.0%, 16=0.0%, 32=0.0%, >32=0.0% + lat (msec): 2=1.6%, 4=0.0%, 8=3.2%, 16=12.8%, 32=38.4%, 64=24.8%, 128=15.2% + lat (msec): 256=4.0%, 512=0.0%, 1024=0.0%, >=2048=0.0% The client number is printed, along with the group id and error of that thread. Below is the io statistics, here for writes. In the order listed, @@ -574,6 +587,12 @@ IO depths= The distribution of io depths over the job life time. The 16= entries includes depths up to that value but higher than the previous entry. In other words, it covers the range from 16 to 31. +IO latencies= The distribution of IO completion latencies. This is the + time from when IO leaves fio and when it gets completed. + The numbers follow the same pattern as the IO depths, + meaning that 2=1.6% means that 1.6% of the IO completed + within 2 msecs, 16=12.8% means that 12.8% of the IO + took more than 8 msecs, but less than (or equal to) 16 msecs. After each client has been listed, the group statistics are printed. They will look like this: