Flexible IO Tester

FIO, the Flexible I/O Tester, is an advanced Linux disk benchmark supporting multiple I/O engines and a wealth of options. FIO was written by Jens Axboe for testing of the Linux I/O subsystem and schedulers.

To run this test with the Phoronix Test Suite, the basic command is: phoronix-test-suite benchmark fio.

Project Site

fio.readthedocs.io

Source Repository

github.com

Test Created

6 December 2010

Last Updated

2 December 2023

Test Maintainer

Michael Larabel 

Test Type

Disk

Average Install Time

11 Seconds

Average Run Time

1 Minute, 29 Seconds

Test Dependencies

C/C++ Compiler Toolchain + Linux AIO

Accolades

500k+ Downloads + 10k+ Public Benchmark Results

Supported Platforms


Public Result Uploads *Reported Test Completions **Reported Installs **Test Profile Page Views ***OpenBenchmarking.orgEventsFlexible IO Tester Popularity Statisticspts/fio2010.122011.052011.102012.032012.082013.012013.062013.112014.042014.092015.022015.072015.122016.052016.102017.032017.082018.012018.062018.112019.042019.092020.022020.072020.122021.052021.102022.032022.082023.012023.062023.112024.042024.09700K1400K2100K2800K3500K
* Uploading of benchmark result data to OpenBenchmarking.org is always optional (opt-in) via the Phoronix Test Suite for users wishing to share their results publicly.
** Data based on those opting to upload their test results to OpenBenchmarking.org and users enabling the opt-in anonymous statistics reporting while running benchmarks from an Internet-connected platform.
*** Test profile page view reporting began March 2021.
Data updated weekly as of 3 December 2024.
Random Read25.3%Sequential Read25.3%Sequential Write24.5%Random Write25.0%Type Option PopularityOpenBenchmarking.org
Linux AIO44.6%Sync18.5%IO_uring18.9%POSIX AIO18.0%Engine Option PopularityOpenBenchmarking.org
No58.0%Yes42.0%Buffered Option PopularityOpenBenchmarking.org
Yes55.1%No44.9%Direct Option PopularityOpenBenchmarking.org
64KB7.4%2MB10.1%4KB26.9%512KB5.7%32KB6.5%16KB6.5%1MB7.9%8MB8.7%4MB5.9%8KB6.6%128KB7.8%Block Size Option PopularityOpenBenchmarking.org
/media/system76/980pro10.0%Default Test Directory90.0%Disk Target Option PopularityOpenBenchmarking.org

Revision History

pts/fio-2.1.0   [View Source]   Sat, 02 Dec 2023 06:58:37 GMT
Update against fio 3.36, fix result parser. Fixes: https://github.com/phoronix-test-suite/test-profiles/issues/286

pts/fio-2.0.0   [View Source]   Wed, 26 Jul 2023 20:08:53 GMT
Update against fio 3.35, add num jobs option and other tweaks

pts/fio-1.15.0   [View Source]   Mon, 20 Dec 2021 19:01:59 GMT
Update against fio 3.29 upstream.

pts/fio-1.14.1   [View Source]   Sun, 06 Dec 2020 08:57:28 GMT
Few fixes for prior commit.

pts/fio-1.14.0   [View Source]   Sat, 05 Dec 2020 21:04:49 GMT
Update against FIO 3.25, drop Windows compatibility for now due to lack of builds.

pts/fio-1.13.2   [View Source]   Fri, 24 Apr 2020 18:41:03 GMT
Build fix for GCC 10 default compiler flags.

pts/fio-1.13.1   [View Source]   Fri, 03 Apr 2020 15:19:21 GMT
Fix for alternate directory handling per

pts/fio-1.13.0   [View Source]   Fri, 21 Feb 2020 08:50:41 GMT
Update against fio 3.18, expose io_uring now that it is sufficiently mature.

pts/fio-1.12.1   [View Source]   Sat, 04 Jan 2020 16:21:17 GMT
Updates from https://github.com/phoronix-test-suite/test-profiles/pull/114

pts/fio-1.12.0   [View Source]   Wed, 09 Oct 2019 10:01:30 GMT
Update against fio 3.16 to avoid build problems with the old fio on newer distributions.

pts/fio-1.11.5   [View Source]   Sat, 09 Feb 2019 11:08:30 GMT
Adjustments per https://github.com/phoronix-test-suite/phoronix-test-suite/issues/337

pts/fio-1.11.4   [View Source]   Sat, 01 Dec 2018 08:49:15 GMT
Fix for 1.11.3 as the XML test defintion got malformed.

pts/fio-1.11.3   [View Source]   Sat, 01 Dec 2018 08:32:44 GMT
Fixes for BSD/FreeBSD support - https://github.com/phoronix-test-suite/test-profiles/pull/41

pts/fio-1.11.2   [View Source]   Sat, 07 Apr 2018 20:07:42 GMT
Drop BSD support since it doesn't work cleanly.

pts/fio-1.11.1   [View Source]   Wed, 28 Feb 2018 19:24:40 GMT
Add Windows FIO support.

pts/fio-1.11.0   [View Source]   Wed, 28 Feb 2018 19:13:31 GMT
Now make the move to fio 3.1.

pts/fio-1.10.1   [View Source]   Wed, 28 Feb 2018 19:05:19 GMT
Update to fio 2.18.

pts/fio-1.9.0   [View Source]   Wed, 01 Feb 2017 21:29:55 GMT
Generae both IOPS and MB/s outputs on PTS Git support code.

pts/fio-1.8.2   [View Source]   Fri, 22 May 2015 17:57:53 GMT
Fix for previous 1.8.1 revision with copy-paste fail.

pts/fio-1.8.1   [View Source]   Wed, 20 May 2015 15:17:50 GMT
Support MB/s output template.

pts/fio-1.8.0   [View Source]   Sat, 28 Mar 2015 08:52:20 GMT
Allow direct value to be a user option.

pts/fio-1.7.1   [View Source]   Thu, 06 Nov 2014 16:16:25 GMT
Ensure directory= is in [global]

pts/fio-1.7.0   [View Source]   Wed, 05 Nov 2014 11:10:36 GMT
Update against fio 2.1.13 upstream.

pts/fio-1.6.2   [View Source]   Tue, 21 Oct 2014 13:13:43 GMT
Fix typo in IO Engine options.

pts/fio-1.6.1   [View Source]   Mon, 13 Oct 2014 18:30:34 GMT
Fix result parsing for new version.

pts/fio-1.6.0   [View Source]   Mon, 13 Oct 2014 09:32:21 GMT
Add new options/

pts/fio-1.5.1   [View Source]   Sat, 13 Sep 2014 17:57:55 GMT
DivideResultBy somehow got left off today\'s earlier commit.

pts/fio-1.5.0   [View Source]   Sat, 13 Sep 2014 11:47:58 GMT
Overhaul of FIO test profile... different output results, more robust, etc per customer requests. REQUIRES LATEST PTS-CORE 5311.

pts/fio-1.4.0   [View Source]   Thu, 17 Jul 2014 11:48:14 GMT
Update against fio 2.1.11, add option to test other disks when PTS finds other mount points available.

pts/fio-1.3.2   [View Source]   Fri, 23 May 2014 22:04:31 GMT
Another fix for FIO provided by Eric Caward.

pts/fio-1.3.1   [View Source]   Fri, 23 May 2014 13:44:25 GMT
Fix for fio test execution.

pts/fio-1.3.0   [View Source]   Thu, 22 May 2014 21:34:49 GMT
Update fio test profile against upstream 2.1.9 release.

pts/fio-1.2.0   [View Source]   Sat, 27 Aug 2011 13:51:20 GMT
Update fio upstream to version 1.57.

pts/fio-1.1.0   [View Source]   Mon, 06 Dec 2010 14:47:30 GMT
Initial import into OpenBenchmarking.org

Suites Using This Test

Disk Test Suite


Performance Metrics

Analyze Test Configuration:

Flexible IO Tester 3.36

Type: Random Read - Engine: Linux AIO - Direct: Yes - Block Size: 4KB - Job Count: 2 - Disk Target: Default Test Directory

OpenBenchmarking.org metrics for this test profile configuration based on 450 public results since 2 December 2023 with the latest data as of 4 December 2024.

Additional benchmark metrics will come after OpenBenchmarking.org has collected a sufficient data-set.

OpenBenchmarking.orgDistribution Of Public Results - Type: Random Read - Engine: Linux AIO - Direct: Yes - Block Size: 4KB - Job Count: 2 - Disk Target: Default Test Directory450 Results Range From 530 To 531933 IOPS53011159217883241743046536756430474933855629619110682011744912807813870714933615996517059418122319185220248121311022373923436824499725562626625527688428751329814230877131940033002934065835128736191637254538317439380340443241506142569043631944694845757746820647883548946450009351072252135153198050100150200250

Based on OpenBenchmarking.org data, the selected test / test configuration (Flexible IO Tester 3.36 - Type: Random Read - Engine: Linux AIO - Direct: Yes - Block Size: 4KB - Job Count: 2 - Disk Target: Default Test Directory) has an average run-time of 11 minutes. By default this test profile is set to run at least 3 times but may increase if the standard deviation exceeds pre-defined defaults or other calculations deem additional runs necessary for greater statistical accuracy of the result.

OpenBenchmarking.orgMinutesTime Required To Complete BenchmarkType: Random Read - Engine: Linux AIO - Direct: Yes - Block Size: 4KB - Job Count: 2 - Disk Target: Default Test DirectoryRun-Time612182430Min: 4 / Avg: 9.9 / Max: 28

Based on public OpenBenchmarking.org results, the selected test / test configuration has an average standard deviation of 2.4%.

OpenBenchmarking.orgPercent, Fewer Is BetterAverage Deviation Between RunsType: Random Read - Engine: Linux AIO - Direct: Yes - Block Size: 4KB - Job Count: 2 - Disk Target: Default Test DirectoryDeviation48121620Min: 0 / Avg: 2.42 / Max: 14

Notable Instruction Set Usage

Notable instruction set extensions supported by this test, based on an automatic analysis by the Phoronix Test Suite / OpenBenchmarking.org analytics engine.

Instruction Set
Support
Instructions Detected
SSE 4.2 (SSE4_2)
Used by default on supported hardware.
Found on Intel processors since at least 2010.
Found on AMD processors since Bulldozer (2011).

 
CRC32
Used by default on supported hardware.
Found on Intel processors since Sandy Bridge (2011).
Found on AMD processors since Bulldozer (2011).

 
VZEROUPPER VBROADCASTSD VINSERTF128 VEXTRACTF128 VPERM2F128
Used by default on supported hardware.
Found on Intel processors since Haswell (2013).
Found on AMD processors since Excavator (2016).

 
VPBROADCASTD VPBROADCASTQ VPERMQ VINSERTI128 VPSLLVQ VPSRLVQ VEXTRACTI128 VPGATHERDD VPBROADCASTW VPBROADCASTB VPERM2I128 VPERMPD VPBLENDD
Advanced Vector Extensions 512 (AVX512)
Used by default on supported hardware.
 
(ZMM REGISTER USE)
FMA (FMA)
Used by default on supported hardware.
Found on Intel processors since Haswell (2013).
Found on AMD processors since Bulldozer (2011).

 
VFMADD132SD VFMADD231SD VFMADD132PD VFMADD213SD
The test / benchmark does honor compiler flag changes.
Last automated analysis: 24 December 2023

This test profile binary relies on the shared libraries libtcmalloc.so.4, libnuma.so.1, libz.so.1, libm.so.6, libmvec.so.1, libaio.so.1, libcurl.so.4, libcrypto.so.3, libc.so.6, libunwind.so.8, libnghttp2.so.14, libidn2.so.0, librtmp.so.1, libssh.so.4, libpsl.so.5, libssl.so.3, libldap-2.5.so.0, liblber-2.5.so.0, libzstd.so.1, libbrotlidec.so.1, liblzma.so.5, libunistring.so.2, libgnutls.so.30, libhogweed.so.6, libnettle.so.8, libgmp.so.10, libkrb5.so.3, libk5crypto.so.3, libkrb5support.so.0, libsasl2.so.2, libbrotlicommon.so.1, libp11-kit.so.0, libtasn1.so.6, libkeyutils.so.1, libresolv.so.2, libffi.so.8.

Tested CPU Architectures

This benchmark has been successfully tested on the below mentioned architectures. The CPU architectures listed is where successful OpenBenchmarking.org result uploads occurred, namely for helping to determine if a given test is compatible with various alternative CPU architectures.

CPU Architecture
Kernel Identifier
Verified On
Intel / AMD x86 64-bit
x86_64
(Many Processors)
ARMv8 64-bit
aarch64
ARMv8 Cortex-A53 4-Core, ARMv8 Cortex-A72 4-Core, ARMv8 Cortex-A76 4-Core, ARMv8 Neoverse-N1, ARMv8 Neoverse-V1

Recent Test Results

OpenBenchmarking.org Results Compare

1 System - 8 Benchmark Results

Intel Core i3-4010U - Intel D34010WYK - Intel Haswell-ULT DRAM

Ubuntu 20.04 - 5.4.0-200-generic - 1.1.182

1 System - 34 Benchmark Results

AMD Ryzen 9 7900X 12-Core - Gigabyte B650 EAGLE AX - AMD Device 14d8

Linuxmint 22 - 6.8.0-38-generic - Cinnamon 6.2.9

2 Systems - 174 Benchmark Results

AMD EPYC 9J14 96-Core - QEMU Standard PC - Intel 82G33

Oracle Linux Server 9.4 - 5.14.0-427.28.1.el9_4.x86_64 - GCC 11.5.0 20240719

1 System - 55 Benchmark Results

Intel Xeon E5-2687W v4 - QEMU Standard PC - 1 x 4GB RAM QEMU

AlmaLinux 9.5 - 5.14.0-503.14.1.el9_5.x86_64 - GCC 11.5.0 20240719

1 System - 8 Benchmark Results

AMD Eng Sample 100-000000560-40_Y - (5.24 BIOS) - AMD 17h-19h PCIe Root Complex

Ubuntu 24.04 - 6.8.0-49-generic - GNOME Shell 46.0

1 System - 56 Benchmark Results

2 x Intel Xeon E5-2687W v4 - QEMU Standard PC - Intel 440FX 82441FX PMC

Ubuntu 20.04 - 5.4.0-200-generic - 1.1.182

1 System - 56 Benchmark Results

2 x Intel Xeon E5-2687W v4 - Intel 440BX - Intel 440BX

Ubuntu 20.04 - 5.4.0-200-generic - 1.1.182

1 System - 50 Benchmark Results

Loongson-3A5000 - Loongson LM-LS3A5000-7A1000-1w-V01-pc_A2101 v1.0 - Loongson LLC Hyper Transport Bridge

JHLS-LT 3.0 - 4.19.190-7.9.lt3.loongarch64 - GNOME Shell 40.10

1 System - 2 Benchmark Results

AMD Ryzen 7 5700U - Oracle VirtualBox v1.2 - Intel 440FX- 82441FX PMC

Ubuntu 24.04 - 6.8.0-48-generic - GNOME Shell 46.0

1 System - 2 Benchmark Results

AMD Ryzen 7 5700U - Oracle VirtualBox v1.2 - Intel 440FX- 82441FX PMC

Ubuntu 24.04 - 6.8.0-48-generic - GNOME Shell 46.0

1 System - 2 Benchmark Results

2 x AMD Ryzen 7 5700U - Intel 440BX - Intel 440BX

Ubuntu 24.04 - 6.8.0-48-generic - GNOME Shell 46.0

1 System - 2 Benchmark Results

2 x AMD Ryzen 7 5700U - Intel 440BX - Intel 440BX

Ubuntu 24.04 - 6.8.0-48-generic - GNOME Shell 46.0

3 Systems - 7 Benchmark Results

AMD Ryzen 7 5700U - Oracle VirtualBox v1.2 - Intel 440FX- 82441FX PMC

Ubuntu 24.04 - 6.8.0-48-generic - GNOME Shell 46.0

2 Systems - 4 Benchmark Results

2 x AMD Ryzen 7 5700U - Intel 440BX - Intel 440BX

Ubuntu 24.04 - 6.8.0-48-generic - GNOME Shell 46.0

1 System - 4 Benchmark Results

ARMv8 Cortex-A78E - NVIDIA Jetson - 16GB

Ubuntu 22.04 - 5.15.136-tegra - GNOME Shell 42.9

Most Popular Test Results

OpenBenchmarking.org Results Compare

2 Systems - 451 Benchmark Results

AMD Ryzen Threadripper PRO 5965WX 24-Cores - ASUS Pro WS WRX80E-SAGE SE WIFI - AMD Starship

Ubuntu 23.10 - 6.5.0-13-generic - GNOME Shell 45.0

3 Systems - 269 Benchmark Results

ARMv8 Cortex-A72 - Telechips TCC8050 LPD4X322 1.0 Main Core - 8GB

poky-telechips-systemd 4.0.12 - 5.10.198-tcc - Wayland Weston 10.0.2

9 Systems - 125 Benchmark Results

AMD EPYC 7763 64-Core - Microsoft Virtual Machine v7.0 - Intel 440BX

Ubuntu 24.04 - 6.8.0-1013-azure - GCC 13.2.0 + Clang 18.1.3

9 Systems - 125 Benchmark Results

AMD EPYC 7763 64-Core - Microsoft Virtual Machine v7.0 - Intel 440BX

Ubuntu 24.04 - 6.8.0-1013-azure - GCC 13.2.0 + Clang 18.1.3

2 Systems - 451 Benchmark Results

AMD Ryzen Threadripper PRO 5965WX 24-Cores - ASUS Pro WS WRX80E-SAGE SE WIFI - AMD Starship

Ubuntu 23.10 - 6.5.0-13-generic - GNOME Shell 45.0

3 Systems - 137 Benchmark Results

ARMv8 Neoverse-V1 - Amazon EC2 m7g.4xlarge - Amazon Device 0200

Ubuntu 24.04 - 6.8.0-1008-aws - 4.5 Mesa 24.0.9-0ubuntu0.1

1 System - 484 Benchmark Results

1 System - 484 Benchmark Results

2 x QEMU Virtual 2.5+ - QEMU Standard PC - Intel 82G33

Ubuntu 22.04 - 5.15.0-94-generic - 1.3.255

1 System - 426 Benchmark Results

4 x Intel Xeon E5-2650 v4 - Intel 440BX - Intel 440BX

Ubuntu 22.04 - 5.15.0-97-generic - 1.3.255

1 System - 161 Benchmark Results

Intel Xeon Platinum 8124M - Amazon EC2 c5d.9xlarge - 70GB

Ubuntu 22.04 - 5.15.0-1057-aws - 1.3.255

1 System - 57 Benchmark Results

Intel Core Ultra 7 155H - MSI MS-15A1 - Intel Device 7e7f

Ubuntu 23.10 - 6.5.0-14-generic - GNOME Shell 45.2

1 System - 73 Benchmark Results

ARMv8 Cortex-A53 - Khadas VIM4 - 8GB

Debian 12 - 5.15.78 - GCC 12.2.0

1 System - 29 Benchmark Results

Intel Xeon Platinum 8124M - Amazon EC2 c5d.9xlarge - 70GB

Ubuntu 22.04 - 5.15.0-1057-aws - 1.3.255

1 System - 57 Benchmark Results

Intel Core Ultra 7 155H - 16GB - 0GB Virtual Disk + 4GB Virtual Disk + 1100GB Virtual Disk

Ubuntu 22.04 - 5.15.133.1-microsoft-standard-WSL2 - X Server + Wayland

1 System - 32 Benchmark Results

Intel Xeon Platinum 8375C - Amazon EC2 m6i.4xlarge - Intel 440FX 82441FX PMC

Ubuntu 24.04 - 6.8.0-1008-aws - 4.5 Mesa 24.0.5-1ubuntu1

Find More Test Results