Freedom251 › PC benchmark tools
fio
by fio

What fio is
fio is a free, GPL-2.0-licensed tool for simulating configurable storage I/O workloads, including for performance testing and reproducing bugs. Workloads are set out in job files that can describe multiple threads, processes, and files. Jobs can run sequential, random, or mixed reads and writes using buffered, direct, or raw I/O. Settings include block size, I/O size, 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 engines. Its HTTP engine supports GET and PUT requests to WebDAV or S3 endpoints; separate engines provide access to Ceph RADOS and RBD. Results can be saved as normal text, terse, JSON, JSON+, or bandwidth and latency logs. Verification options can check written data after a workload, including repeated burn-in tests. fio supports Linux, Solaris, AIX, HP-UX, macOS, NetBSD, OpenBSD, Windows, FreeBSD, and DragonFly. The documented HTTP engine supports direct I/O only at I/O depth 1, with scaling through multiple jobs.
Who it suits
fio suits people who need to define and run configurable storage I/O workloads, automate runs, or verify written data. Its multiple operating-system options may help users working across Linux, Windows, macOS, and other listed systems.
What it does well
- Defines multi-threaded workloads in job files.
- Supports sequential, random, and mixed reads and writes.
- Exports results in text, JSON, and log formats.
- Includes options to verify written data.
- Available for Linux, Windows, macOS, and other systems.
What to know first
- HTTP direct I/O is limited to depth 1.
- Bug reports go to the mailing list or GitHub.
Limits
The documented HTTP engine supports direct I/O only at I/O depth 1; scaling is through multiple jobs.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| fio | Open-source I/O tester · GPL-2.0 | Free |
As github.com lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the fio GitHub repository.
- Install or run fio on a supported operating system.
- Create a job file describing the workload, targets, and parameters.
- Run the workload through the command line.
- Choose an output format, and enable verification if needed.
Verdict
fio offers detailed workload controls, verification, and several output formats at no cost. Its HTTP direct-I/O depth limit matters for users planning those workloads.
Questions
Is fio free?
Yes. fio is free and its plan is listed as free. The project license is GPL-2.0.
Which operating systems does fio support?
Listed systems include Linux, Solaris, AIX, HP-UX, macOS, NetBSD, OpenBSD, Windows, FreeBSD, and DragonFly.
Can fio automate workloads?
Yes. fio offers command-line automation, and workloads are described in job files.
Which result formats can fio export?
Results can be written as normal text, terse output, JSON, JSON+, and bandwidth or latency logs.
What storage services can its HTTP engine access?
The HTTP engine supports GET and PUT requests to WebDAV or S3 endpoints.
What is the HTTP engine's direct I/O limit?
It supports direct I/O only at I/O depth 1, with scaling through multiple jobs.
Facts from fio's own pages
- CLI or automation
- Yes · github.com, 24 Sept 2026
- Comparison database
- No · github.com, 24 Sept 2026
- Custom test profiles
- Yes · github.com, 24 Sept 2026
- Data verification
- Verification options can check written data after a workload, including repeated burn-in tests. · github.com, 4 Oct 2026
- Distribution
- The repository identifies GPL-2.0 as the project license. · github.com, 4 Oct 2026
- Founded
- 2006 · github.com, 28 Sept 2026
- Free plan
- Yes · github.com, 24 Sept 2026
- I/O engines
- Documented engines include Linux io_uring and libaio, POSIX asynchronous I/O, and synchronous read/write engines. · github.com, 4 Oct 2026
- I/O patterns
- Jobs can perform sequential, random, or mixed reads and writes, using buffered, direct, or raw I/O. · github.com, 4 Oct 2026
- Notable limit
- The documented HTTP engine supports direct I/O only at I/O depth 1, with scaling through multiple jobs. · github.com, 4 Oct 2026
- Operating systems
- Linux,Solaris,AIX,HP-UX,macOS,NetBSD,OpenBSD,Windows,FreeBSD,DragonFly · github.com, 24 Sept 2026
- Output
- Results can be written in normal, terse, JSON, or JSON+ formats, with terse output intended for scripts, tables, or graphs. · github.com, 4 Oct 2026
- Platforms
- The project lists Windows installers for tagged releases and packages for Linux distributions, Solaris, and BSDs; its release notes also mention macOS. · github.com, 4 Oct 2026
- Purpose
- fio simulates configurable I/O workloads for performance testing and reproducing bugs. · github.com, 4 Oct 2026
- Result export formats
- normal text,terse (semicolon-delimited),JSON,JSON+,bandwidth/latency logs · github.com, 24 Sept 2026
- Storage integrations
- The HTTP engine supports GET and PUT requests to WebDAV or S3 endpoints, and separate engines provide Ceph RADOS and RBD access. · github.com, 4 Oct 2026
- Support
- The maintainers direct bug reports to the fio mailing list or GitHub rather than to them by direct email. · github.com, 4 Oct 2026
- Tuning
- Workload parameters include block size, I/O size, I/O engine, queue depth, target files or devices, and job count. · github.com, 4 Oct 2026
- Workload areas
- Storage I/O: read,write,trim,mixed workloads; bandwidth,IOPS,and latency · github.com, 24 Sept 2026
- Workload setup
- Workloads are defined in job files that can describe multiple threads, processes, and files. · github.com, 4 Oct 2026
Where fio stands on Freedom251
- PC benchmark tools#6 of 70
- PC Benchmark Software#10 of 73