Fio
Run fio on the DUT and assert against parsed
metrics. The fio binary must be installed on the DUT. The
FirmwareCI base image does not include it.
| Attribute | Type | Required | Default | Description |
|---|
cmd | const | Yes | fio | Command Name |
name | string | Yes | | Name to uniquely identify the teststep. This name will show up in reports, logs and the WebUI |
transport | TransportObject | Yes | | Additional transport options |
options | OptionsObject | No | | Additional command options (default timeout 2m) |
parameters | FioOptions | Yes | | Options passed into the fio cmd |
Fio Options
| Attribute | Type | Required | Default | Description |
|---|
args | []string | No | randread 4k 1G 30s job | Raw arguments passed to fio. If omitted, runs a default randread workload against /tmp/contest-fio-<nano>.dat. --output-format=json auto-added. |
expect | FioExpect | No | | Per-metric assertions. See Expect Comparator Syntax. |
Fio Expect Options
Assertions run against the first job in fio’s JSON output.
| Attribute | Type | Required | Description |
|---|
ReadBW | string | No | Read bandwidth in KiB/s |
ReadIOPS | string | No | Read IOPS |
ReadLatMean | string | No | Mean read latency in nanoseconds |
WriteBW | string | No | Write bandwidth in KiB/s |
WriteIOPS | string | No | Write IOPS |
WriteLatMean | string | No | Mean write latency in nanoseconds |
Fio Example
cmd: fio
name: Random read bandwidth
transport: *transport
parameters:
args:
- --name=randread
- --filename=/tmp/fio.dat
- --rw=randread
- --bs=4k
- --size=512M
- --runtime=20
- --time_based
expect:
ReadIOPS: ">5000"
ReadLatMean: "<200000"