Skip to content
SPECIFICTION
Get listed

fio

fio.readthedocs.io

Free plan WindowsmacOSLinux

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

fio Free GNU GPL version 2 software Read 30 Sep 2026 · fio.readthedocs.io

Every fio plan and price →

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

Alternatives to fioAll alternatives →