Freedom251 › Disk Benchmark Software
fio

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 jobs in files 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 accept jobs from clients on other hosts; client/server mode can also send jobs to remote hosts. Its HTTP engine supports HTTP and S3 access. The --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 generally unnecessary unless the chosen files or devices require it, though some options may be restricted. The documentation lists support for Linux, macOS, Windows, and other operating systems. Windows installers are available through GitHub Releases, and Linux distribution packages are listed. Building on Windows requires Cygwin. fio is free software under version 2 of the GNU GPL.
Who it suits
fio suits users who need to configure specific I/O workloads for performance testing or bug reproduction. Its job files, command-line controls, and remote operation may suit technical users testing storage across hosts.
What it does well
- Workloads can be configured through job files or command line
- Reports results in four formats
- Client/server mode sends jobs to remote hosts
- HTTP engine supports HTTP and S3 access
- --readonly option is intended to prevent writes and trims
What to know first
- Building on Windows requires Cygwin
- Some options may be restricted
- Root access may be needed for selected files or devices
Limits
fio is free under the GNU GPL version 2. Building fio on Windows requires Cygwin, and documented minimum Windows versions are Windows 7 and Windows Server 2008 R2.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| fio | GNU GPL version 2 software | Free |
As fio.readthedocs.io lists them, read 30 Sept 2026. The maker's own page has the final word.
Getting started
- Open the fio documentation website.
- Install a tagged-release Windows installer from GitHub Releases or use a listed Linux distribution package.
- On Windows, use at least Windows 7 or Windows Server 2008 R2; Cygwin is required to build fio.
- Describe the workload in a job file or set its parameters on the command line.
- Choose target files or devices, workload settings, and a report format.
- Use --readonly when you want the option intended to prevent writes and trims.
fio is a command-line storage workload generator for people who need to shape I/O tests rather than run a fixed benchmark. It suits engineers and technically confident users investigating storage performance or reproducing I/O bugs; its depth comes with more setup than a simple benchmark utility.
Overview
fio lets users define storage activity in job files or through command-line parameters, then run it against target files or devices. Random and sequential tests, IOPS and latency measurements, and adjustable workload parameters make it useful when a test needs to reflect a particular I/O pattern. The trade-off is that users must configure the workload themselves; fio is not presented as a one-click, standardized benchmark.
The project dates to 2006. Jens Axboe created it to support flexible testing of the Linux I/O subsystem and schedulers, and Axboe and Vincent Fu are its maintainers. fio is free software under version 2 of the GNU GPL.
Key features
Workload controls
Each workload can set I/O patterns, block and I/O sizes, engines, queue depth, target files or devices, and whether work runs through threads or processes. That breadth helps users isolate specific storage behaviors and save repeatable setups in job files. It also means a meaningful run depends on choosing suitable parameters and targets.
Output and remote operation
Results can be produced in normal, terse, JSON, or JSON+ formats, so users can choose between readable output and structured formats suited to further processing. Client/server mode lets a client send jobs to a fio backend on another host, useful when the workload needs to run remotely rather than on the machine issuing the job.
HTTP and S3 access
fio's HTTP engine supports access to HTTP and S3. This extends its storage targets beyond local files and devices for users whose test setup calls for those services.
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 are valuable, but they do not remove the need to check targets and options before running a workload. Root access is not generally required; permissions depend on the files, devices, and options involved.
Pricing
fio is free: its plan costs nothing and the software is published under the GNU GPL version 2. There is no paid tier described, so users get the workload controls, reporting formats, and remote mode without a license charge.
Platforms
fio supports Linux, macOS, Windows, Solaris, AIX, HP-UX, NetBSD, OpenBSD, FreeBSD, and DragonFly. Linux distribution packages are available, and tagged-release Windows installers are published through GitHub Releases. Building fio on Windows requires Cygwin; the minimum documented Windows versions are Windows 7 and Windows Server 2008 R2. That extra requirement makes Windows use less direct than simply installing a native build.
Who it's for
fio is a strong fit for storage engineers, developers, and administrators who need repeatable, configurable I/O workloads, measurements of IOPS or latency, or a way to reproduce storage-related bugs. Its command-line interface and extensive controls favor users comfortable specifying test parameters. Readers seeking a quick, standardized disk score with minimal configuration should choose a simpler benchmark instead.
Pros and cons
- Pros: Fine-grained control over patterns, sizes, engines, queue depth, targets, and execution style makes workloads adaptable to specific questions.
- Pros: Multiple output formats and client/server operation support result processing and remote jobs.
- Pros: Free GPLv2 software supports a broad range of operating systems.
- Cons: Workloads require configuration, which is a barrier for users who only want a quick benchmark.
- Cons: Windows builds require Cygwin, adding a setup dependency.
- Cons: Safety checks do not substitute for careful target and permission selection, particularly when destructive workloads are possible.
Alternatives
For other disk benchmark options, browse the Disk Benchmark Software directory. Choose simple-disk-benchmark if you want a free, MIT-licensed command-line tool on Linux, macOS, or Windows. Parkdale is a free option for Android, macOS, or Windows. On Linux, KDiskMark offers a free open-source disk benchmark, while Filebench is another free Linux option. Windows users can consider AS SSD Benchmark, a free Windows utility, or D-Bench, which is free for Windows and includes three themes. DaVinci Resolve and Buddi are also listed as alternatives.
Verdict
Choose fio when you need to define and repeat a specific storage workload, measure IOPS or latency, or send jobs to remote hosts without paying for the software. Its flexibility is the central reason to use it; the configuration burden and Windows Cygwin requirement are the reasons to look elsewhere if you want a quick, low-effort benchmark.
Verdict
fio provides detailed controls for defining and running I/O workloads, with multiple output formats and remote execution. Windows builds require Cygwin, and permissions depend on the selected files, devices, and options.
Questions
How much does fio cost?
fio is free software under version 2 of the GNU GPL.
Which operating systems does fio support?
Listed systems include Linux, Solaris, AIX, HP-UX, macOS, NetBSD, OpenBSD, Windows, FreeBSD, and DragonFly.
How do I define an I/O workload?
You can describe it in a job file or provide parameters on the command line, including I/O patterns, sizes, engines, queue depth, targets, and threads or processes.
Can fio run jobs on another host?
Yes. fio can run as a backend server and accept jobs from clients on other hosts.
Who created and maintains fio?
The documentation names Jens Axboe as the author and Jens Axboe and Vincent Fu as maintainers.
What are fio’s Windows requirements?
The documented minimum versions are Windows 7 and Windows Server 2008 R2. Cygwin is required to build fio on Windows.
Facts from fio's own pages
- 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. · fio.readthedocs.io, 29 Sept 2026
- Distribution
- The documentation says tagged-release Windows installers are available through GitHub Releases and mentions Linux distribution packages. · fio.readthedocs.io, 30 Sept 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. · fio.readthedocs.io, 29 Sept 2026
- Founded
- 2006 · fio.readthedocs.io, 23 Sept 2026
- Intended users
- The author describes fio as a tool for simulating specific I/O workloads without repeatedly writing tailored test programs. · fio.readthedocs.io, 30 Sept 2026
- License
- fio is free software published under version 2 of the GNU GPL. · fio.readthedocs.io, 30 Sept 2026
- Maintainers
- The documentation names Jens Axboe and Vincent Fu as maintainers. · fio.readthedocs.io, 29 Sept 2026
- Permissions
- fio does not need root unless the specified files or devices require it, though some options may also be restricted. · fio.readthedocs.io, 29 Sept 2026
- 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. · fio.readthedocs.io, 30 Sept 2026
- Purpose
- fio simulates user-defined I/O workloads to test performance or reproduce bugs. · fio.readthedocs.io, 30 Sept 2026
- Remote execution
- fio supports a client/server mode that can send jobs to run on remote hosts. · fio.readthedocs.io, 30 Sept 2026
- Remote operation
- fio can run as a backend server and accept jobs from clients on other hosts. · fio.readthedocs.io, 29 Sept 2026
- Reporting
- fio can output normal, terse, JSON, and JSON+ reports. · fio.readthedocs.io, 30 Sept 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. · fio.readthedocs.io, 29 Sept 2026
- Safety option
- The --readonly option enables checks intended to prevent write and trim workloads. · fio.readthedocs.io, 30 Sept 2026
- Storage access
- The documentation describes HTTP and S3 access through fio's HTTP engine. · fio.readthedocs.io, 29 Sept 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. · fio.readthedocs.io, 30 Sept 2026
- Windows requirement
- The minimum Windows versions for building or running fio are Windows 7 and Windows Server 2008 R2. · fio.readthedocs.io, 29 Sept 2026
- Windows requirements
- The documented minimum Windows versions are Windows 7 and Windows Server 2008 R2; Cygwin is required to build fio on Windows. · fio.readthedocs.io, 30 Sept 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. · fio.readthedocs.io, 30 Sept 2026
- Workload setup
- Users describe workloads in job files or provide job parameters on the command line. · fio.readthedocs.io, 30 Sept 2026
Where fio stands on Freedom251
- Disk Benchmark Software#11 of 29