Filebench vs fio
Filebench
github.comfio
github.comSide by side
| Figure | Filebench | fio |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · PC Benchmark Software | 7.5 (#50) | 8.4 (#12) |
| Spec score · PC benchmark tools | 7.2 (#63) | 8.4 (#17) |
| Free plan | Yes | Yes |
| Purpose | Filebench is a file system and storage benchmark that generates a variety of workloads. | fio simulates configurable I/O workloads for performance testing and reproducing bugs. |
| Support | The project directs questions, bug reports, and feature requests to GitHub Issues. | The maintainers direct bug reports to the fio mailing list or GitHub rather than to them by direct email. |
Plans
In their own words
Filebench
Filebench is a Linux file system and storage benchmark for generating workloads and measuring I/O behavior. It supports micro- and macro-benchmarking, with random and sequential tests, IOPS measurement, and latency measurement. Its Workload Model Language (WML) lets users describe application I/O by defining filesets, processes, threads, and flow operations. Built-in workload personalities cover mail, web, file, and database servers, and predefined examples include webserver, fileserver, and mailserver workloads. Shipped workloads may not match a particular system's scale, so the documentation recommends copying and adjusting them. Filebench is free: its listed plan is free, with no usage limits stated. It runs on Linux and provides a command-line interface. The README describes building and installing it with configure, make, and sudo make install; yacc and lex are required. Questions, bug reports, and feature requests go to GitHub Issues. The project uses the Common Development and Distribution License (CDDL), Version 1.0.
fio
fio is a free storage I/O workload simulator for performance testing and reproducing bugs. Its job files can define multiple threads, processes and files, with sequential, random or mixed reads and writes using buffered, direct or raw I/O. Tune block and I/O size, I/O engine, queue depth, target files or devices, and job count. Documented engines include Linux io_uring and libaio, POSIX asynchronous I/O, and synchronous read/write options. Separate engines support HTTP GET and PUT requests to WebDAV or S3 endpoints and access to Ceph RADOS and RBD. Verification options can check written data after a workload, including repeated burn-in tests. Results are available in normal text, terse, JSON and JSON+ formats, plus bandwidth and latency logs; terse output is intended for scripts, tables or graphs. fio supports Linux, Solaris, AIX, HP-UX, macOS, NetBSD, OpenBSD, Windows, FreeBSD and DragonFly. The HTTP engine supports direct I/O only at depth 1, with scaling through multiple jobs.