FREEDOM251

Freedom251 › Disk Benchmark Software

fio

Free plan LinuxMacWindows

Visit fio Alternatives Pricing

fio's own site

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

PlanBilled and limitsPrice
fioGNU GPL version 2 softwareFree

As fio.readthedocs.io lists them, read 30 Sept 2026. The maker's own page has the final word.

Getting started

  1. Open the fio documentation website.
  2. Install a tagged-release Windows installer from GitHub Releases or use a listed Linux distribution package.
  3. On Windows, use at least Windows 7 or Windows Server 2008 R2; Cygwin is required to build fio.
  4. Describe the workload in a job file or set its parameters on the command line.
  5. Choose target files or devices, workload settings, and a report format.
  6. 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

Look at these too