Skip to content

arcalot/arcaflow-plugin-fio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fio Plugin for Arcaflow

This plugin executes the fio workload with a given input schema defined in a yaml file.

Note

Not all Fio parameters are currently implemented. Please review the schema documentation below.

Input structure

The input structure (YAML or JSON) is a near-match to a standard fio job file. A list of jobs is provided, with each item requiring a name, which is equivalent to a fio job file section name, and a params object with key-value pairs that match job parameters from an fio job file.

For example, a fio job file like this:

[global]
size=2G
direct=1
blocksize_range=4k-4096k
runtime=60
time_based=1
stonewall=1

[write]
readwrite=write

[read]
readwrite=read

Would look like this as an Arcaflow fio plugin input file:

jobs:
  - name: global
    params:
      size: 2G
      direct: 1
      blocksize_range: 4k-4096k
      runtime: 60
      time_based: 1
      stonewall: 1
  - name: write
    params:
      readwrite: write
  - name: read
    params:
      readwrite: read

Using the plugin

Get a maintained build from quay.io/arcalot/arcaflow-plugin-fio, or build the container locally:

podman build . -t arcaflow-plugin-fio

Run with the provided example input:

podman run -i --rm arcaflow-plugin-fio -f - < fixtures/poisson-rate-submission_input.yaml

Autogenerated Input/Output Documentation by Arcaflow-Docsgen Below

fio workload (workload)

run an fio workload

Input

Type:scope
Root object:FioInput
Properties
cleanup (bool)
Name:Cleanup
Description:Cleanup temporary files created during execution.
Required:No
Default (JSON encoded):
false
Type:bool
jobs (list[reference[FioJob]])
Name:Fio Jobs List
Description:List of jobs for fio to run.
Required:Yes
Type:list[reference[FioJob]]
List items
Type:reference[FioJob]
Referenced object:FioJob
Objects
FioInput (object)
Type:object
Properties
cleanup (bool)
Name:Cleanup
Description:Cleanup temporary files created during execution.
Required:No
Default (JSON encoded):
false
Type:bool
jobs (list[reference[FioJob]])
Name:Fio Jobs List
Description:List of jobs for fio to run.
Required:Yes
Type:list[reference[FioJob]]
List items
Type:reference[FioJob]
Referenced object:FioJob
FioJob (object)
Type:object
Properties
name (string)
Name:Job Name
Description:User-defined ASCII name of the job.
Required:Yes
Type:string
params (reference[JobParams])
Name:Fio Job Parameters
Description:Parameters for the fio job.
Required:Yes
Type:reference[JobParams]
Referenced object:JobParams
JobParams (object)
Type:object
Properties
blocksize (string)
Name:Block Size
Description:Block size in bytes used for I/O operations. A single value applies to reads, writes, and trims. Comma-separated values may be specified for reads, writes, and trims. A value not terminated in a comma applies to subsequent types. Defaults to 4096.
Required:No
Type:string
Must match pattern:^(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)(?:,(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)){0,2}$
blocksize_range (string)
Name:Block Size Range
Description:A range of block sizes in bytes for I/O operations. The issued I/O operation will always be a multiple of the minimum size, unless blocksize_unaligned is set. Comma-separated ranges may be specified for reads, writes, and trims as described in blocksize. A range is not used by default.
Required:No
Type:string
Must match pattern:^(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)-(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)(?:,(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)-(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)){0,2}$
buffered (bool)
Name:Buffered
Description:Use buffered I/O. This is the opposite of the direct option and defaults to True.
Required:No
Type:bool
create_on_open (bool)
Name:Create Files on Open
Description:Don't pre-create files but allow the job's open() to create a file when it's time to do I/O. Defaults to false.
Required:No
Type:bool
direct (bool)
Name:Direct I/O
Description:Use non-buffered I/O. This is usually O_DIRECT. Note that OpenBSD and ZFS on Solaris don't support direct I/O. On Windows the synchronous ioengines don't support direct I/O. This is the opposite of the buffered option and defaults to False.
Required:No
Type:bool
directory (string)
Name:Job Directory
Description:Prefix filenames with this directory. Used to place files in a different location than './'. You can specify a number of directories by separating the names with a ':' character. These directories will be assigned equally distributed to job clones created by numjobs as long as they are using generated filenames. If specific filename(s) are set fio will use the first listed directory, and thereby matching the filename semantic (which generates a file for each clone if not specified, but lets all clones use the same file if set). Default is the current directory.
Required:No
Type:string
Must match pattern:^[^:]+(?::[^:]+)*$
filename (string)
Name:File Name
Description: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 with fixed file paths, specify a filename for each of them to override the default. If the ioengine is file based, you can specify a number of files by separating the names with a ':' colon. So if you wanted a job to open '/dev/sda' and '/dev/sdb' as the two working files, you would use 'filename=/dev/sda:/dev/sdb'. This also means that whenever this option is specified, nrfiles is ignored. The size of regular files specified by this option will be size divided by number of files unless an explicit size is specified by filesize.
Required:No
Type:string
Must match pattern:^[^:]+(?::[^:]+)*$
filesize (string)
Name:File Size
Description:Individual file sizes. May be a range, in which case fio will select sizes for files at random within the given range. If not given, each created file is the same size. This option overrides size in terms of file size, i.e. size becomes merely the default for io_size (and has no effect at all if io_size is set explicitly).
Required:No
Type:string
Must match pattern:^(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)-(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)$
io_size (string)
Name:I/O Size
Description:Normally fio operates within the region set by size, which means that the size option sets both the region and size of I/O to be performed. Sometimes that is not what you want. With this option, it is possible to define just the amount of I/O that fio should do. For instance, if size is set to 20GiB and io_size is set to 5GiB, fio will perform I/O within the first 20GiB but exit when 5GiB have been done. The opposite is also possible -- if size is set to 20GiB, and io_size is set to 40GiB, then fio will do 40GiB of I/O within the 0..20GiB region. Value can be set as percentage: io_size=N%. In this case io_size multiplies 'size' value.
Required:No
Type:string
Must match pattern:^(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?|[1-9][0-9]?%|100%)$
io_submit_mode (enum[string])
Name:IO Submit Mode
Description:Controls how fio submits the I/O to the I/O engine. The default is 'inline', which means that the fio job threads submit and reap I/O directly. If set to 'offload', the job threads will offload I/O submission to a dedicated pool of I/O threads. This requires some coordination and thus has a bit of extra overhead, especially for lower queue depth I/O where it can increase latencies. The benefit is that fio can manage submission rates independently of the device completion rates. This avoids skewed latency reporting if I/O gets backed up on the device side (the coordinated omission problem). Note that this option cannot reliably be used with async IO engines.
Required:No
Type:enum[string]
Values
  • inline: inline
  • offload: offload
iodepth (int)
Name:IO Depth
Description:Number of I/O operations to keep in flight against the file. Note that increasing iodepth beyond 1 will not affect synchronous ioengines (except for small degrees when verify_async is in use). Even async engines may impose OS restrictions causing the desired depth not to be achieved. This may happen on Linux when using libaio and not setting 'direct=1', since buffered I/O is not async on that OS. Keep an eye on the I/O depth distribution in the fio output to verify that the achieved depth is as expected. Default is 1.
Required:No
Type:int
Minimum:1
ioengine (enum[string])
Name:IO Engine
Description:Defines how the job issues I/O to the file. Default is sync.
Required:No
Type:enum[string]
Values
  • libaio: libaio
  • psync: psync
  • sync: sync
  • windowsaio: windowsaio
kb_base (enum[int])
Name:Units Base
Description:Select the interpretation of unit prefixes in input parameters. Specifying '1000' indicates that the inputs comply with IEC 80000-13 and the International System of Units (SI), that is units with IEC prefixes (e.g., KiB) use power-of-2 multipliers and units with SI prefixes (e.g., KB) use power-of-10 multipliers. Specifying '1024' indicates the reverse, that units with SI prefixes (e.g., KB) use power-of-2 multipliers and values with IEC prefixes (e.g., KiB) use power-of-10 multipliers. The default is '1024'.
Required:No
Type:enum[int]
Values
                <li><strong>1000:</strong> KB</li>
            
                <li><strong>1024:</strong> KIB</li>
            
        </ul>
    </details>
    </td>
    
loops (int)
Name:Number of Job Loops
Description:Run the specified number of iterations of this job. Used to repeat the same workload a given number of times. Default is 1.
Required:No
Type:int
nrfiles (int)
Name:Number of Files
Description:Number of files to use for this job. The size of files will be size divided by this unless explicit size is specified by filesize. Files are created for each thread separately, and each file will have a file number within its name by default, as explained in filename section. Default is 1.
Required:No
Type:int
Minimum:1
numjobs (int)
Name:Number of Job Clones
Description:Create the specified number of clones of this job. Each clone of job is spawned as an independent thread or process. May be used to set up a larger number of threads/processes doing the same thing. Each thread is reported separately. Default is 1.
Required:No
Type:int
openfiles (int)
Name:Concurrent Open Files
Description:Number of files to keep open at the same time. Defaults to the same as nrfiles, but can be set smaller to limit the number simultaneous opens.
Required:No
Type:int
Minimum:1
pre_read (bool)
Name:Pre-Read Files
Description:Files will be pre-read into memory before starting the given I/O operation. This will also clear the invalidate flag, since it is pointless to pre-read and then drop the cache. This will only work for I/O engines that are seek-able, since they allow you to read the same data multiple times. Thus it will not work on non-seekable I/O engines (e.g. network, splice). Defaults to false.
Required:No
Type:bool
ramp_time (string)
Name:Job Ramp Time
Description:Run the specified workload for this amount of time before logging any performance numbers. Useful for letting performance settle before logging results, thus minimizing the runtime required for stable results. Note that the ramp_time is considered lead in time for a job, thus it will increase the total runtime if a special timeout or runtime is specified. When the unit is omitted, the value is given in seconds. Default is 0.
Required:No
Type:string
Must match pattern:^[0-9]+(?:d|h|m|s|ms|us)?$
rate_iops (string)
Name:IOPS Cap
Description:Cap the bandwidth to this number of IOPS. Basically the same as rate, just specified independently of bandwidth. If the job is given a block size range instead of a fixed value, the smallest block size is used as the metric. Comma-separated values may be specified for reads, writes, and trims as described in blocksize.
Required:No
Type:string
Must match pattern:^(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)(?:,(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?)){0,2}$
rate_process (enum[string])
Name:Rate Process
Description:Controls how fio manages rated I/O submissions. The default is 'linear', which submits I/O in a linear fashion with fixed delays between I/Os that gets adjusted based on I/O completion rates. If this is set to 'poisson', fio will submit I/O based on a more real world random request flow, known as the Poisson process (https://en.wikipedia.org/wiki/Poisson_point_process). The lambda will be 10^6 / IOPS for the given workload.
Required:No
Type:enum[string]
Values
  • linear: linear
  • poisson: poisson
readwrite (enum[string])
Name:Read/Write
Description:Type of IO pattern. Defaults to read. For the mixed I/O types, the default is to split them 50/50. For certain types of I/O the result may still be skewed a bit since the speed may be different.
Required:No
Type:enum[string]
Values
  • randread: randread
  • randrw: randrw
  • randwrite: randwrite
  • read: read
  • readwrite: readwrite
  • rw: rw
  • write: write
runtime (string)
Name:Job Run Time
Description:Limit runtime. The test will run until it completes the configured I/O workload or until it has run for this specified amount of time, whichever occurs first. When the unit is omitted, the value is interpreted in seconds. Default is no time limit.
Required:No
Type:string
Must match pattern:^[0-9]+(?:d|h|m|s|ms|us)?$
rwmixread (int)
Name:Read/Write Mix - Read
Description:Percentage of a mixed workload that should be reads. Only one of either rwmixread or rwmixwrite is allowed in an individual job definition. Default: 50
Required:No
Conflicts the following fields:rwmixwrite
Type:int
Minimum:1
Maximum:100
rwmixwrite (int)
Name:Read/Write Mix - Write
Description:Percentage of a mixed workload that should be writes. Only one of either rwmixread or rwmixwrite is allowed in an individual job definition. Default: 50
Required:No
Conflicts the following fields:rwmixread
Type:int
Minimum:1
Maximum:100
size (string)
Name:Total I/O Size
Description:The total size of file I/O for each thread of this job. Fio will run until this many bytes have been transferred, unless runtime is altered by other means such as (1) runtime, (2) io_size, (3) number_ios, (4) gaps/holes while doing I/O's such as 'rw=read:16K', or (5) sequential I/O reaching end of the file which is possible when percentage_random is less than 100. Fio will divide this size between the available files determined by options such as nrfiles or filename, unless filesize is specified by the job. If the result of division happens to be 0, the size is set to the physical size of the given files or devices if they exist. If this option is not specified, fio will use the full size of the given files or devices. If the files do not exist, size must be given. It is also possible to give size as a percentage between 1 and 100. If 'size=20%' is given, fio will use 20% of the full size of the given files or devices.
Required:No
Type:string
Must match pattern:^(?:0x[0-9a-fA-F]+|\d+(?:k|kb|ki|kib|m|mb|mi|mib|g|gb|gi|gib|t|tb|ti|tib|p|pb|pi|pib)?|[1-9][0-9]?%|100%)$
startdelay (string)
Name:Job Start Delay
Description:Delay the start of job for the specified amount of time. Can be a single value or a range. When given as a range, each thread will choose a value randomly from within the range. Value is in seconds if a unit is omitted. Default is 0.
Required:No
Type:string
Must match pattern:^[0-9]+(?:d|h|m|s|ms|us)?(?:-[0-9]+(?:d|h|m|s|ms|us)?)?$
stonewall (bool)
Name:Stonewall
Description:Wait for preceding jobs in the job file to exit, before starting this one. Can be used to insert serialization points in the job file. A stonewall also implies starting a new reporting group, (see group_reporting). Default is false.
Required:No
Type:bool
time_based (bool)
Name:Time Based
Description:If set, fio will run for the duration of the runtime specified even if the file(s) are completely read or written. It will simply loop over the same workload as many times as the runtime allows. Default is false.
Required:No
Type:bool
unlink (bool)
Name:Unlink Files
Description:Unlink the job files when done. Not the default, as repeated runs of that job would then waste time recreating the file set again and again. Defaults to false.
Required:No
Type:bool
unlink_each_loop (bool)
Name:Unlink Files Each Loop
Description:Unlink job files after each iteration or loop. Defaults to False.
Required:No
Type:bool

Outputs

error

Type:scope
Root object:FioErrorOutput
Properties
error (string)
Name:Job Error Traceback
Description:Fio job traceback for debugging
Required:Yes
Type:string
Objects
FioErrorOutput (object)
Type:object
Properties
error (string)
Name:Job Error Traceback
Description:Fio job traceback for debugging
Required:Yes
Type:string

success

Type:scope
Root object:FioSuccessOutput
Properties
disk_util (list[reference[DiskUtilization]])
Name:Disk Utlization
Description:Disk utilization during job
Required:No
Type:list[reference[DiskUtilization]]
List items
Type:reference[DiskUtilization]
Referenced object:DiskUtilization
fio version (string)
Name:Fio version
Description:Fio version used on job
Required:Yes
Type:string
global options (map[string,string])
Name:global options
Description:Options applied to every job
Required:No
Type:map[string,string]
Key type
Type:string
Value type
Type:string
jobs (list[reference[JobResult]])
Name:Jobs
Description:List of job input parameter configurations
Required:Yes
Type:list[reference[JobResult]]
List items
Type:reference[JobResult]
Referenced object:JobResult
time (string)
Name:Time
Description:Human readable datetime string
Required:Yes
Type:string
timestamp (int)
Name:Timestamp
Description:POSIX compliant timestamp in seconds
Required:Yes
Type:int
timestamp_ms (int)
Name:timestamp ms
Description:POSIX compliant timestamp in milliseconds
Required:Yes
Type:int
Objects
AioOutput (object)
Type:object
Properties
bw (int)
Name:Bandwidth KiB
Description:IO bandwidth used in kibibytes
Required:Yes
Type:int
bw_agg (float)
Name:Bandwidth Aggregate Percentile
Required:Yes
Type:float
bw_bytes (int)
Name:Bandwidth B
Description:IO bandwidth used in bytes
Required:Yes
Type:int
bw_dev (float)
Name:Bandwidth Std Dev
Description:Bandwidth standard deviation
Required:Yes
Type:float
bw_max (int)
Name:Bandwidth Max
Description:Bandwidth maximum
Required:Yes
Type:int
bw_mean (float)
Name:Bandwidth Mean
Description:Bandwidth mean
Required:Yes
Type:float
bw_min (int)
Name:Bandwidth Min
Description:Bandwidth minimum
Required:Yes
Type:int
bw_samples (int)
Name:Bandwidth Sample Quantity
Description:Quantity of bandwidth samples collected
Required:Yes
Type:int
clat_ns (reference[IoLatency])
Name:Completion Latency ns
Description:Completion latency in nanoseconds
Required:Yes
Type:reference[IoLatency]
Referenced object:IoLatency
drop_ios (int)
Name:Dropped IOs
Description:Unclear from documentation. Edcuated guess: quantity of dropped IO.
Required:Yes
Type:int
io_bytes (int)
Name:IO B
Description:Quantity of IO transactions in bytes
Required:Yes
Type:int
io_kbytes (int)
Name:IO KiB
Description:Quantity of IO transactions in kibibytes
Required:Yes
Type:int
iops (float)
Name:IOPS
Description:IO operations per second
Required:Yes
Type:float
iops_max (int)
Name:IOPS Max
Description:IO operations per second maximum
Required:Yes
Type:int
iops_mean (float)
Name:IOPS Mean
Description:IO operations per second mean
Required:Yes
Type:float
iops_min (int)
Name:IOPS Min
Description:IO operations per second minimum
Required:Yes
Type:int
iops_samples (int)
Name:IOPS Sample Quantity
Description:Quantity of IOPS samples collected
Required:Yes
Type:int
iops_stddev (float)
Name:IOPS Std Dev
Description:IO operations per second standard deviation
Required:Yes
Type:float
lat_ns (reference[IoLatency])
Name:Latency ns
Description:Total latency in nanoseconds.
Required:Yes
Type:reference[IoLatency]
Referenced object:IoLatency
runtime (int)
Name:Runtime
Description:Length of time in seconds on this IO pattern type
Required:Yes
Type:int
short_ios (int)
Name:Short IOs
Description:Unclear from documentation. Educated guess: quantity of incomplete IO.
Required:Yes
Type:int
slat_ns (reference[IoLatency])
Name:Submission Latency ns
Description:Submission latency in nanoseconds
Required:Yes
Type:reference[IoLatency]
Referenced object:IoLatency
total_ios (int)
Name:Quantity of Latencies Logged
Description:Quantity of latency samples collected (i.e. logged)
Required:Yes
Type:int
DiskUtilization (object)
Type:object
Properties
aggr_in_queue (int)
Name:Workers' Time in Queue
Description:Total time in queue across all workers.
Required:No
Type:int
aggr_read_ios (int)
Name:Workers' Read IOs
Description:Total read IO operations across all workers.
Required:No
Type:int
aggr_read_merges (int)
Name:Workers' Read Merges
Description:Total read merges across all workers.
Required:No
Type:int
aggr_read_ticks (int)
Name:Workers' Read Ticks
Description:Total read ticks across all workers.
Required:No
Type:int
aggr_util (float)
Name:Workers' Device Utilization
Description:Mean device utilization across all workers.
Required:No
Type:float
aggr_write_ios (int)
Name:Workers' Write IOs
Description:Total write IO operations across all workers.
Required:No
Type:int
aggr_write_merge (int)
Name:Workers' Write Merges
Description:Total write merges across all workers.
Required:No
Type:int
aggr_write_ticks (int)
Name:Workers' Write Ticks
Description:Total write ticks across all workers.
Required:No
Type:int
in_queue (int)
Name:Time in Queue
Description:Total time spent in device queue. No units are specified in source, nor documentation.
Required:Yes
Type:int
name (string)
Name:Device Name
Description:Name of the storage device.
Required:Yes
Type:string
read_ios (int)
Name:Read IOs
Description:Quantity of read IO operations.
Required:Yes
Type:int
read_merges (int)
Name:Read Merges
Description:Quantity of read merges performed by IO scheduler.
Required:Yes
Type:int
read_ticks (int)
Name:Read Ticks
Description:Quantity of read ticks that kept the device busy.
Required:Yes
Type:int
util (float)
Name:Device Utilization
Description:Proportion of time the device was busy.
Required:Yes
Type:float
write_ios (int)
Name:Write IOs
Description:Quantity of write IO operations.
Required:Yes
Type:int
write_merges (int)
Name:Write Merges
Description:Quantity of write merges performed by IO scheduler.
Required:Yes
Type:int
write_ticks (int)
Name:Write Ticks
Description:Quantity of write ticks that kept the device busy.
Required:Yes
Type:int
FioSuccessOutput (object)
Type:object
Properties
disk_util (list[reference[DiskUtilization]])
Name:Disk Utlization
Description:Disk utilization during job
Required:No
Type:list[reference[DiskUtilization]]
List items
Type:reference[DiskUtilization]
Referenced object:DiskUtilization
fio version (string)
Name:Fio version
Description:Fio version used on job
Required:Yes
Type:string
global options (map[string,string])
Name:global options
Description:Options applied to every job
Required:No
Type:map[string,string]
Key type
Type:string
Value type
Type:string
jobs (list[reference[JobResult]])
Name:Jobs
Description:List of job input parameter configurations
Required:Yes
Type:list[reference[JobResult]]
List items
Type:reference[JobResult]
Referenced object:JobResult
time (string)
Name:Time
Description:Human readable datetime string
Required:Yes
Type:string
timestamp (int)
Name:Timestamp
Description:POSIX compliant timestamp in seconds
Required:Yes
Type:int
timestamp_ms (int)
Name:timestamp ms
Description:POSIX compliant timestamp in milliseconds
Required:Yes
Type:int
IoLatency (object)
Type:object
Properties
N (int)
Name:IO Latency Sample Quantity
Description:quantity of IO latency samples collected
Required:Yes
Type:int
bins (map[string,int])
Name:Binned IO Latency Sample
Description:binned version of the IO latencies collected
Required:No
Type:map[string,int]
Key type
Type:string
Value type
Type:int
max (int)
Name:IO Latency Max
Description:IO latency maximum
Required:Yes
Type:int
mean (float)
Name:IO Latency Mean
Description:IO latency mean
Required:Yes
Type:float
min (int)
Name:IO Latency Min
Description:IO latency minimum
Required:Yes
Type:int
percentile (map[string,int])
Name:IO Latency Cumulative Distribution
Description:Cumulative distribution of IO latency sample
Required:No
Type:map[string,int]
Key type
Type:string
Value type
Type:int
stddev (float)
Name:IO Latency StdDev
Description:IO latency standard deviation
Required:Yes
Type:float
JobResult (object)
Type:object
Properties
ctx (int)
Name:Context Switches
Description:Quantity of voluntary and involuntary context switches.
Required:Yes
Type:int
elapsed (int)
Name:Time Elapsed s
Description:Execution time up to now in seconds.
Required:Yes
Type:int
error (int)
Name:Error
Description:An error code thrown by the job.
Required:Yes
Type:int
eta (int)
Name:ETA
Description:Specifies when real-time estimates should be printed.
Required:Yes
Type:int
groupid (int)
Name:Thread Group ID
Description:Identifying number for thread group used in a job.
Required:Yes
Type:int
iodepth_complete (map[string,float])
Name:Completed IO Depth Frequency Distribution
Description:Unclear from documentation.
Required:Yes
Type:map[string,float]
Key type
Type:string
Value type
Type:float
iodepth_level (map[string,float])
Name:Total IO Depth Frequency Distribution
Description:Unclear from documentation.
Required:Yes
Type:map[string,float]
Key type
Type:string
Value type
Type:float
iodepth_submit (map[string,float])
Name:Submission IO Depth Frequency Distribution
Description:Unclear from documentation.
Required:Yes
Type:map[string,float]
Key type
Type:string
Value type
Type:float
job options (map[string,string])
Name:Job Options
Description:Options passed to the fio executable.
Required:Yes
Type:map[string,string]
Key type
Type:string
Value type
Type:string
job_runtime (int)
Name:Runtime
Description:Execution time used on this job.
Required:Yes
Type:int
jobname (string)
Name:Job Name
Description:Name of the job configuration
Required:Yes
Type:string
latency_depth (int)
Name:Latency Depth
Description:Latency queue depth.
Required:Yes
Type:int
latency_ms (map[string,float])
Name:Millisecond Latency Frequency Distribution
Description:Unclear from documentation.
Required:Yes
Type:map[string,float]
Key type
Type:string
Value type
Type:float
latency_ns (map[string,float])
Name:Nanosecond Latency Frequency Distribution
Description:Unclear from documentation.
Required:Yes
Type:map[string,float]
Key type
Type:string
Value type
Type:float
latency_percentile (float)
Name:Percent Beat Target Latency
Description:Proportion of IOs that beat the target latency.
Required:Yes
Type:float
latency_target (int)
Name:Latency Target microseconds
Description:Maximum allowed latency.
Required:Yes
Type:int
latency_us (map[string,float])
Name:Microsecond Latency Frequency Distribution
Description:Unclear from documentation.
Required:Yes
Type:map[string,float]
Key type
Type:string
Value type
Type:float
latency_window (int)
Name:Latency Window microseconds
Description:Used with Latency Target to specify the sample windowthat the job is run at varying queue depths to test performance.
Required:Yes
Type:int
majf (int)
Name:Major Page Fault
Description:Quantity of page faults requring physical IO.
Required:Yes
Type:int
minf (int)
Name:Minor Page Fault
Description:Quantity of page faults not requiring physical IO.
Required:Yes
Type:int
read (reference[AioOutput])
Name:Read
Description:Read IO results.
Required:Yes
Type:reference[AioOutput]
Referenced object:AioOutput
sync (reference[SyncIoOutput])
Name:Synchronous
Description:Synchronous IO results.
Required:Yes
Type:reference[SyncIoOutput]
Referenced object:SyncIoOutput
sys_cpu (float)
Name:System CPU
Description:CPU usage in kernel (system) space.
Required:Yes
Type:float
trim (reference[AioOutput])
Name:Trim
Description:Trim IO results.
Required:Yes
Type:reference[AioOutput]
Referenced object:AioOutput
usr_cpu (float)
Name:User CPU
Description:CPU usage in user space.
Required:Yes
Type:float
write (reference[AioOutput])
Name:Write
Description:Write IO results.
Required:Yes
Type:reference[AioOutput]
Referenced object:AioOutput
SyncIoOutput (object)
Type:object
Properties
lat_ns (reference[IoLatency])
Name:Latency ns
Description:Total latency in nanoseconds.
Required:Yes
Type:reference[IoLatency]
Referenced object:IoLatency
total_ios (int)
Name:Quantity of Latencies Logged
Description:Quantity of latency samples collected (i.e. logged).
Required:Yes
Type:int