fio
fio.readthedocs.io
What it is
fio is a free command-line tool for simulating user-defined I/O workloads for performance testing and reproducing bugs. Users can describe a workload in a job file or set parameters on the command line, including I/O patterns, block and I/O sizes, engines, queue depth, target files or devices, and threads or processes. Results can be reported in normal, terse, JSON or JSON+ formats. fio can run as a backend server and receive jobs from clients on other hosts; its HTTP engine supports HTTP and S3 access. It supports random and sequential tests, IOPS and latency measurement, and platforms including Linux, macOS, Windows and several BSD variants. On Windows, the documented minimums are Windows 7 and Windows Server 2008 R2, and Cygwin is required for building. The --readonly option is intended to prevent writes and trims; fio also aborts destructive jobs on devices that appear mounted unless allow_mounted_write is set. Root access is only needed when the selected files or devices require it. fio is free software under version 2 of the GNU GPL.
Spec sheet
- Purpose
- fio simulates user-defined I/O workloads to test performance or reproduce bugs.Read 30 Sep 2026 · fio.readthedocs.io
- Intended users
- The author describes fio as a tool for simulating specific I/O workloads without repeatedly writing tailored test programs.Read 30 Sep 2026 · fio.readthedocs.io
- Platforms
- The documentation lists Linux, Solaris, AIX, HP-UX, OSX, NetBSD, OpenBSD, Windows, FreeBSD, and DragonFly as supported platforms, while noting that some features vary by platform.Read 30 Sep 2026 · fio.readthedocs.io
- Support
- The project mailing list is intended for discussion, bug reports, questions, and development; the documentation also directs bug reports to the mailing list reflector or GitHub page.Read 30 Sep 2026 · fio.readthedocs.io
- License
- fio is free software published under version 2 of the GNU GPL.Read 30 Sep 2026 · fio.readthedocs.io
- Founded
- 2006Read 23 Sep 2026 · fio.readthedocs.io
- Author
- The documentation names Jens Axboe as fio's author and says he wrote it to enable flexible testing of the Linux I/O subsystem and schedulers.Read 29 Sep 2026 · fio.readthedocs.io
- Distribution
- The documentation says tagged-release Windows installers are available through GitHub Releases and mentions Linux distribution packages.Read 30 Sep 2026 · fio.readthedocs.io
- Download options
- The documentation points to official release installers for Windows on GitHub and lists binary packages in several Linux distributions and other repositories.Read 29 Sep 2026 · fio.readthedocs.io
- Maintainers
- The documentation names Jens Axboe and Vincent Fu as maintainers.Read 29 Sep 2026 · fio.readthedocs.io
- Permissions
- fio does not need root unless the specified files or devices require it, though some options may also be restricted.Read 29 Sep 2026 · fio.readthedocs.io
- Remote execution
- fio supports a client/server mode that can send jobs to run on remote hosts.Read 30 Sep 2026 · fio.readthedocs.io
- Remote operation
- fio can run as a backend server and accept jobs from clients on other hosts.Read 29 Sep 2026 · fio.readthedocs.io
- Reporting
- fio can output normal, terse, JSON, and JSON+ reports.Read 30 Sep 2026 · fio.readthedocs.io
- Safety control
- The --readonly option prevents writes and trims, and fio aborts destructive jobs on devices that appear mounted unless allow_mounted_write is set.Read 29 Sep 2026 · fio.readthedocs.io
- Safety option
- The --readonly option enables checks intended to prevent write and trim workloads.Read 30 Sep 2026 · fio.readthedocs.io
- Storage access
- The documentation describes HTTP and S3 access through fio's HTTP engine.Read 29 Sep 2026 · fio.readthedocs.io
- Windows requirement
- The minimum Windows versions for building or running fio are Windows 7 and Windows Server 2008 R2.Read 29 Sep 2026 · fio.readthedocs.io
- Windows requirements
- The documented minimum Windows versions are Windows 7 and Windows Server 2008 R2; Cygwin is required to build fio on Windows.Read 30 Sep 2026 · fio.readthedocs.io
- Workload controls
- Job parameters include I/O pattern, block size, data size, I/O engine, queue depth, target files or devices, and thread or process count.Read 30 Sep 2026 · fio.readthedocs.io
- Workload setup
- Users describe workloads in job files or provide job parameters on the command line.Read 30 Sep 2026 · fio.readthedocs.io
Plans and prices
Strong points and limits
Strong points
- Configures patterns, sizes, engines and queue depth
- Reports in normal, terse, JSON or JSON+ formats
- Supports random and sequential tests
- Measures IOPS and latency
- Can accept jobs from clients on other hosts
Limits
- Windows builds require Cygwin
- Windows minimum is Windows 7 or Server 2008 R2
- Some files, devices or options may require elevated permissions
Who it suits
fio suits people who need to define and run storage I/O workloads for performance measurement or bug reproduction. Its job files, command-line controls and client/server mode give technical users several ways to run tests.
fio in depth
Read the full write-up
Overview
fio is a command-line tool for defining and running storage I/O workloads, especially for performance testing and reproducing bugs. It suits engineers who need to shape tests around particular storage behavior rather than rely on a fixed benchmark pattern. Its breadth of controls and free GPL license are compelling, though it expects users to work from the command line and understand the workload they want to generate.
Key features
Workload control
Users can define jobs in files or pass parameters directly, then set I/O patterns, block and I/O sizes, engines, queue depth, targets, and whether fio uses threads or processes. This makes fio useful for targeted random or sequential tests, IOPS and latency measurements, and repeatable configurations. The flexibility is a strength for technical users, but it also means fio is not a ready-made, simplified benchmark interface.
Results and remote jobs
Output is available in normal, terse, JSON, and JSON+ formats, giving users options for reading results or feeding them into other workflows. In client/server mode, fio can accept jobs from clients on other hosts, useful when workloads need to run remotely. Its HTTP engine also supports access to HTTP and S3 storage.
Safety and permissions
The --readonly option enables checks intended to prevent writes and trims, and fio aborts destructive jobs on devices that appear mounted unless allow_mounted_write is set. These controls help reduce the risk of an unintended destructive run, but they do not remove the need to choose targets and options carefully. Root access is not generally required unless the selected files or devices demand it; some options may also have permission restrictions.
Pricing
fio has one free plan: free. It is free software under version 2 of the GNU GPL, so there is no paid tier to unlock its workload controls or reporting formats. The project mailing list handles discussion, questions, bug reports, and development; bug reports can also go to GitHub.
Platforms
fio supports Linux, Solaris, AIX, HP-UX, OSX, NetBSD, OpenBSD, Windows, FreeBSD, and DragonFly. For Windows, the documented minimums are Windows 7 and Windows Server 2008 R2, and building fio requires Cygwin. Tagged-release Windows installers are available through GitHub Releases, while Linux distribution packages are also available.
Who it's for
fio is best for storage and systems practitioners who need configurable, repeatable I/O workloads, measurements of IOPS or latency, or remote job execution. Its job files and multiple output formats also suit workflows that need to preserve test definitions or process results. Readers looking for a graphical, one-click disk benchmark may be better served by a tool designed around that simpler use case.
Pros and cons
Pros: Fine-grained control over I/O patterns, sizes, engines, queue depth, targets, and execution model helps match a test to a specific question.
Pros: Normal, terse, JSON, and JSON+ outputs and remote client/server execution support varied reporting and deployment needs.
Pros: Free GPLv2 software spans a broad range of operating systems, with Windows installers and Linux packages available.
Cons: A command-line interface and extensive workload options suit technical users better than people seeking a guided benchmark.
Cons: Windows users must account for the minimum supported versions, and building from source requires Cygwin.
Alternatives
For a broader browse, see the Disk Benchmark Software directory. Choose Parkdale if you want a free disk utility with Android support as well as macOS and Windows. simple-disk-benchmark is another free command-line option, for Linux, macOS, and Windows. Linux users seeking an open-source disk benchmark can consider KDiskMark; Windows users can consider the freeware AS SSD Benchmark or D-Bench, which supports Windows 8/8.1/10/11 or Vista/7. Filebench is a free Linux option. DaVinci Resolve and Buddi are also listed as alternatives.
Verdict
Choose fio if you need free, cross-platform control over storage workloads, detailed measurements, or remote execution. Its main advantage is how precisely a test can be configured; look elsewhere if you want a graphical benchmark that hides workload setup behind a simple interface.
Verdict
fio offers detailed workload controls, multiple output formats and remote job execution at no charge. Windows users should account for the documented minimum versions and Cygwin build requirement.
Where Specifiction places it
- Disk Benchmark Software#6 of 298.1