fio
fio is a free command-line tool for simulating user-defined I/O workloads for performance testing and reproducing bugs.
What fio 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 specify its parameters on the command line. Configurable settings include I/O patterns, block and I/O sizes, engines, queue depth, target files or devices, and the use of threads or processes. Results can be reported in normal, terse, JSON, or JSON+ formats. fio can run as a backend server and accept jobs from clients on other hosts, and its HTTP engine supports HTTP and S3 access. The tool runs on Linux, macOS, and Windows, as well as other listed operating systems. The documentation gives Windows 7 and Windows Server 2008 R2 as minimum versions; building on Windows requires Cygwin. Its --readonly option is intended to prevent writes and trims, and fio aborts destructive jobs on devices that appear mounted unless allow_mounted_write is set. Root access is not generally required unless the chosen files or devices need it. fio is free software under version 2 of the GNU GPL.
Good
- Workloads can be defined in files or on the command line.
- Offers normal, terse, JSON, and JSON+ output.
- Can send jobs to remote hosts.
- Includes a read-only option intended to prevent writes and trims.
Watch out
- Windows builds require Cygwin.
- Minimum Windows versions are Windows 7 and Server 2008 R2.
- Some options may be restricted by permissions.
Who it suits
fio suits people who need to define and run storage I/O workloads without writing a separate test program for each one. Its client/server mode may be useful when jobs need to run on remote hosts.
Verdict
fio provides detailed control over workload settings and several output formats, with client/server operation for remote jobs. Users should review its safety controls and platform requirements before directing workloads at storage devices.
Plans and prices
From fio's own pricing page, checked 30 Sep 2026.
| Plan | Price | What it gives you |
|---|---|---|
| fio | Free | GNU GPL version 2 software |
The facts
Each one read from fio's own pages, with the date it was checked.
What it does
- 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.checked 29 Sep 2026
- Distribution
- The documentation says tagged-release Windows installers are available through GitHub Releases and mentions Linux distribution packages.checked 30 Sep 2026
- Download options
- The documentation points to official release installers for Windows on GitHub and lists binary packages in several Linux distributions and other repositories.checked 29 Sep 2026
- Intended users
- The author describes fio as a tool for simulating specific I/O workloads without repeatedly writing tailored test programs.checked 30 Sep 2026
- License
- fio is free software published under version 2 of the GNU GPL.checked 30 Sep 2026
- Maintainers
- The documentation names Jens Axboe and Vincent Fu as maintainers.checked 29 Sep 2026
- Permissions
- fio does not need root unless the specified files or devices require it, though some options may also be restricted.checked 29 Sep 2026
- Purpose
- fio simulates user-defined I/O workloads to test performance or reproduce bugs.checked 30 Sep 2026
- Remote execution
- fio supports a client/server mode that can send jobs to run on remote hosts.checked 30 Sep 2026
- Remote operation
- fio can run as a backend server and accept jobs from clients on other hosts.checked 29 Sep 2026
- Reporting
- fio can output normal, terse, JSON, and JSON+ reports.checked 30 Sep 2026
- 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.checked 29 Sep 2026
- Safety option
- The --readonly option enables checks intended to prevent write and trim workloads.checked 30 Sep 2026
- Storage access
- The documentation describes HTTP and S3 access through fio's HTTP engine.checked 29 Sep 2026
- 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.checked 30 Sep 2026
- 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.checked 30 Sep 2026
- Workload setup
- Users describe workloads in job files or provide job parameters on the command line.checked 30 Sep 2026
The company
- Founded
- 2006checked 23 Sep 2026
Where it runs
- 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.checked 30 Sep 2026
- Windows requirement
- The minimum Windows versions for building or running fio are Windows 7 and Windows Server 2008 R2.checked 29 Sep 2026
- Windows requirements
- The documented minimum Windows versions are Windows 7 and Windows Server 2008 R2; Cygwin is required to build fio on Windows.checked 30 Sep 2026
The full review of fio
fio is a command-line storage workload tool for people who need to shape performance tests or reproduce I/O bugs rather than run a single preset benchmark. Its strongest case is flexibility: it exposes detailed workload controls and can send jobs to remote hosts, but that breadth makes it a poor fit for anyone seeking a simple, guided disk-speed check.
Overview
Instead of requiring a separate test program for each scenario, fio lets users define work in job files or pass settings on the command line. That is useful when a test needs to reflect particular storage behavior and then be repeated or adjusted. It supports random and sequential tests, IOPS and latency measurement, and can target files or devices.
fio is free software under version 2 of the GNU GPL, and its free plan costs nothing. Its project began in 2006; Jens Axboe authored it to support flexible testing of the Linux I/O subsystem and schedulers. Axboe and Vincent Fu are its maintainers.
Key features
Workload control
Users can tune I/O patterns, block and I/O sizes, engines, queue depth, target files or devices, and whether work runs in threads or processes. This makes fio a capable choice for users who need to isolate or reproduce a particular storage workload. The trade-off is that configuring a meaningful run calls for familiarity with those settings; it is not a one-click benchmark.
Output and remote jobs
Results can be emitted in normal, terse, JSON, or JSON+ formats. The range serves both direct reading and workflows that need structured output. In client/server mode, a backend server accepts jobs from clients on other hosts, which is useful when the workload must run remotely rather than where it is configured.
HTTP and S3 access
fio's HTTP engine provides access to HTTP and S3 storage. This extends the tool beyond local file and device targets for users whose workload involves those access paths.
Safety and permissions
The --readonly option enables checks intended to prevent writes and trims. fio also aborts destructive jobs on devices that appear mounted unless allow_mounted_write is set. These safeguards matter because jobs can target devices, but they should not be treated as a substitute for careful configuration. Root access is unnecessary unless the selected files or devices require it; some options may also be restricted.
Pricing
The fio plan is free at no cost and includes the software under GNU GPL version 2. There is no paid tier to weigh against it; the cost advantage comes with a command-line tool whose workload configuration is aimed at users who want control, not a simplified benchmark interface.
Platforms
fio supports Linux, Solaris, AIX, HP-UX, OSX, NetBSD, OpenBSD, Windows, FreeBSD, and DragonFly. The project documentation points to Linux distribution packages and tagged-release Windows installers on GitHub. Building fio on Windows requires Cygwin; the minimum documented versions for building or running it are Windows 7 and Windows Server 2008 R2. For users choosing a platform, the Windows build requirement is a practical constraint, while distribution packages provide another route on Linux.
Who it's for
fio suits storage engineers, developers, and technically confident users who need to specify I/O behavior, measure IOPS or latency, reproduce a workload, or execute jobs remotely. It is less suitable for casual users who want a quick disk score without configuring a test. The project mailing list handles discussion, questions, bug reports, and development; bug reports can also go to GitHub.
Pros and cons
- Pros: Fine-grained workload settings let users tailor tests instead of relying on a fixed pattern.
- Pros: Multiple output formats and client/server operation support structured reporting and remote execution.
- Pros: It is free software with broad platform support, including Linux, macOS, and Windows.
- Cons: Its command-line, configurable approach is a poor match for users who want guided, preset testing.
- Cons: Device-targeted workloads require care despite the read-only and mounted-device checks; Windows builds also require Cygwin.
Alternatives
For a related set of tools, browse Disk Benchmark Software. If you want another free command-line option on Linux, Filebench is available for that platform. simple-disk-benchmark is also free, command-line software on Linux, macOS, and Windows; readers who want its MIT-licensed alternative can choose it instead. Linux users seeking an open-source disk benchmark tool can consider KDiskMark.
Parkdale is a free alternative for Android, macOS, and Windows, while D-Bench is a free Windows option. AJA System Test is another free choice for macOS and Windows. Buddi is free budgeting software rather than a storage-testing tool, and DaVinci Resolve is a freemium video-editing alternative rather than a storage workload tool.
Verdict
Choose fio if you need precise control over storage workloads, measurements, and remote jobs, and are comfortable configuring them from the command line. Its free, broad-platform toolkit is compelling for repeatable or specialized tests. Look elsewhere if your priority is a straightforward disk benchmark with little setup, or if configuring and safely directing workloads at files or devices is more complexity than you need.
Getting started
- Open the fio documentation or download page.
- Select a platform supported by the documentation.
- On Windows, use Windows 7 or Windows Server 2008 R2 or later; use Cygwin to build.
- Get a tagged-release Windows installer through GitHub Releases, or a binary package from a Linux distribution or another repository.
- Define a workload in a job file or set its parameters on the command line.
- Use --readonly when you want checks intended to prevent writes and trims.
Questions
Is fio free?
Yes. The listed plan is free, at no cost, and the software is published under version 2 of the GNU GPL.
Which operating systems does fio support?
The documentation lists Linux, macOS, Windows, Solaris, AIX, HP-UX, NetBSD, OpenBSD, FreeBSD, and DragonFly.
How do you define an fio workload?
You can describe it in a job file or provide parameters on the command line. Settings include I/O patterns, sizes, engines, queue depth, targets, and threads or processes.
Can fio run jobs remotely?
Yes. It can run as a backend server and accept jobs from clients on other hosts.
Does fio support HTTP or S3?
Its HTTP engine supports HTTP and S3 access.
What are the Windows requirements?
The minimum documented versions are Windows 7 and Windows Server 2008 R2. Cygwin is required to build fio on Windows.
Alternatives to fio
- 1

GitHub CodeQL
Free planWebExtensionLinuxmacOS7.5From $30 a month - 2
Parkdale
Free planAndroidmacOSWindows7.2Free plan - 3
CrystalDiskMark
Free planWindows6.9$9.99 one-time - 4

AJA System Test
Free planmacOSWindows6.5Free plan - 5
DiskSpd
Free planLinuxmacOSWindows6.5Free plan - 6
HD Tune Pro
Windows6.4
