Skip to content

fio — Flexible I/O Tester

This page has moved

The main fio landing page with run instructions is now at fio. This page contains additional technical details.

Tool: fio Status: Implemented

Purpose

Fine-grained storage I/O benchmarking with extensive control over workload parameters. Runs inside Linux VMs on the cluster.

When to Use

  • Need precise control over I/O patterns beyond VMFleet's profiles
  • Testing Linux VM storage performance specifically
  • Validating I/O scheduler behavior, queue depths, or specific block sizes
  • Client/server mode for distributed I/O testing

Key Capabilities

  • Job file-based workload definition
  • Multiple I/O engines (libaio, io_uring, Windows IOCP)
  • JSON output for automated parsing
  • Verification mode for data integrity testing

Prerequisites

In addition to the common prerequisites:

  • Linux VMs deployed on the Azure Local cluster
  • Ansible 2.14+ for deployment (see Ansible Requirements)
  • fio package installed on target VMs (automated via Ansible role)

Quick Start

# 1. Deploy fio to Linux VMs
.\tools\fio\scripts\Install-Fio.ps1 `
    -ClusterName "hci01.corp.infiniteimprobability.com" `
    -Nodes @("hci01-node1", "hci01-node2")

# 2. Run a workload profile
.\tools\fio\scripts\Start-FioTest.ps1 `
    -ClusterName "hci01.corp.infiniteimprobability.com" `
    -Nodes @("hci01-node1", "hci01-node2") `
    -Profile "random-read"

# 3. Collect and normalize results
.\tools\fio\scripts\Collect-FioResults.ps1 `
    -ClusterName "hci01.corp.infiniteimprobability.com" `
    -Nodes @("hci01-node1", "hci01-node2") `
    -RunId "<run-id-from-previous-step>"

File Locations

Component Path
Scripts tools/fio/scripts/
Profiles tools/fio/config/profiles/
Alert Rules tools/fio/monitoring/alerts/alert-rules.yml
Report Templates tools/fio/reports/templates/
Tests tools/fio/tests/

fio Documentation

Document Description
Installation Deploy fio to Linux VMs via Ansible
Workload Profiles Built-in profiles and profile configuration
Monitoring Alert rules active during fio runs
Reporting Result collection and report generation
Troubleshooting Common issues and resolutions