fio
github.com
What it is
fio is a free storage I/O workload simulator for performance testing and reproducing bugs. Its job files can define multiple threads, processes and files, with sequential, random or mixed reads and writes using buffered, direct or raw I/O. Tune block and I/O size, I/O engine, queue depth, target files or devices, and job count. Documented engines include Linux io_uring and libaio, POSIX asynchronous I/O, and synchronous read/write options. Separate engines support HTTP GET and PUT requests to WebDAV or S3 endpoints and access to Ceph RADOS and RBD. Verification options can check written data after a workload, including repeated burn-in tests. Results are available in normal text, terse, JSON and JSON+ formats, plus bandwidth and latency logs; terse output is intended for scripts, tables or graphs. fio supports Linux, Solaris, AIX, HP-UX, macOS, NetBSD, OpenBSD, Windows, FreeBSD and DragonFly. The HTTP engine supports direct I/O only at depth 1, with scaling through multiple jobs.
Spec sheet
- Purpose
- fio simulates configurable I/O workloads for performance testing and reproducing bugs.Read 4 Oct 2026 · github.com
- Platforms
- The project lists Windows installers for tagged releases and packages for Linux distributions, Solaris, and BSDs; its release notes also mention macOS.Read 4 Oct 2026 · github.com
- Free plan
- YesRead 24 Sep 2026 · github.com
- Support
- The maintainers direct bug reports to the fio mailing list or GitHub rather than to them by direct email.Read 4 Oct 2026 · github.com
- Founded
- 2006Read 28 Sep 2026 · github.com
- CLI or automation
- YesRead 24 Sep 2026 · github.com
- Comparison database
- NoRead 24 Sep 2026 · github.com
- Custom test profiles
- YesRead 24 Sep 2026 · github.com
- Data verification
- Verification options can check written data after a workload, including repeated burn-in tests.Read 4 Oct 2026 · github.com
- Distribution
- The repository identifies GPL-2.0 as the project license.Read 4 Oct 2026 · github.com
- I/O engines
- Documented engines include Linux io_uring and libaio, POSIX asynchronous I/O, and synchronous read/write engines.Read 4 Oct 2026 · github.com
- I/O patterns
- Jobs can perform sequential, random, or mixed reads and writes, using buffered, direct, or raw I/O.Read 4 Oct 2026 · github.com
- Notable limit
- The documented HTTP engine supports direct I/O only at I/O depth 1, with scaling through multiple jobs.Read 4 Oct 2026 · github.com
- Operating systems
- Linux,Solaris,AIX,HP-UX,macOS,NetBSD,OpenBSD,Windows,FreeBSD,DragonFlyRead 24 Sep 2026 · github.com
- Output
- Results can be written in normal, terse, JSON, or JSON+ formats, with terse output intended for scripts, tables, or graphs.Read 4 Oct 2026 · github.com
- Result export formats
- normal text,terse (semicolon-delimited),JSON,JSON+,bandwidth/latency logsRead 24 Sep 2026 · github.com
- Storage integrations
- The HTTP engine supports GET and PUT requests to WebDAV or S3 endpoints, and separate engines provide Ceph RADOS and RBD access.Read 4 Oct 2026 · github.com
- Tuning
- Workload parameters include block size, I/O size, I/O engine, queue depth, target files or devices, and job count.Read 4 Oct 2026 · github.com
- Workload areas
- Storage I/O: read,write,trim,mixed workloads; bandwidth,IOPS,and latencyRead 24 Sep 2026 · github.com
- Workload setup
- Workloads are defined in job files that can describe multiple threads, processes, and files.Read 4 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Job files can define multiple threads, processes and files.
- Supports sequential, random and mixed read/write patterns.
- Results include JSON, terse and bandwidth/latency logs.
- Verification options can check written data.
- Free; project license is GPL-2.0.
Limits
- HTTP direct I/O is limited to depth 1.
- Bug reports go to the mailing list or GitHub.
Who it suits
fio suits people who need configurable storage workloads, scriptable results or data verification across supported operating systems. It can also model workloads involving WebDAV, S3 or Ceph storage.
Verdict
fio offers detailed control over workload shape, I/O engines and output formats. Its documented HTTP direct-I/O depth limit matters for users scaling that particular workload.
Where Specifiction places it
- PC Benchmark Software#12 of 738.4
- PC benchmark tools#17 of 708.4