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 7 November 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.29

Type: Random Read - Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.org metrics for this test profile configuration based on 290 public results since 20 December 2021 with the latest data as of 15 July 2024.

Below is an overview of the generalized performance for components where there is sufficient statistically significant data based upon user-uploaded results. It is important to keep in mind particularly in the Linux/open-source space there can be vastly different OS configurations, with this overview intended to offer just general guidance as to the performance expectations.

Component
Percentile Rank
# Compatible Public Results
IOPS (Average)
100th
4
766750 +/- 3775
Mid-Tier
75th
< 176667
53rd
3
93633 +/- 67
Median
50th
85133
47th
5
74277 +/- 847
41st
5
61363 +/- 2282
36th
3
41275 +/- 499
31st
5
27767 +/- 155
Low-Tier
25th
< 12212
8th
10
593 +/- 77
OpenBenchmarking.orgDistribution Of Public Results - Type: Random Read - Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory290 Results Range From 118 To 770000 IOPS11815516309144631261710771089250610790412330213870015409816949618489420029221569023108824648626188427728229268030807832347633887435427236967038506840046641586443126244666046205847745649285450825252365053904855444656984458524260064061603863143664683466223267763069302870842672382473922275462077001820406080100

Based on OpenBenchmarking.org data, the selected test / test configuration (Flexible IO Tester 3.29 - Type: Random Read - Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory) has an average run-time of 4 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 - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryRun-Time3691215Min: 2 / Avg: 3.71 / Max: 12

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

OpenBenchmarking.orgPercent, Fewer Is BetterAverage Deviation Between RunsType: Random Read - Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryDeviation714212835Min: 0 / Avg: 3.2 / Max: 30

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)
ARMv6 32-bit
armv6l
ARMv7
ARMv8 64-bit
aarch64
ARMv8 Cortex-A53 4-Core, ARMv8 Cortex-A55 4-Core, ARMv8 Cortex-A72 4-Core, ARMv8 Cortex-A72 6-Core, ARMv8 Cortex-A73 2-Core, ARMv8 Cortex-A76 4-Core, ARMv8 Cortex-A78E 6-Core, ARMv8 Neoverse-N1, ARMv8 rev 0 6-Core, Apple M1, HUAWEI Kunpeng 920

Recent Test Results

OpenBenchmarking.org Results Compare

1 System - 32 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 32 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 32 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 112 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 112 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 116 Benchmark Results

4 x Intel Xeon Silver 4216 - Intel VMware Virtual 440BX Desktop - Intel 440BX

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 58 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

1 System - 58 Benchmark Results

4 x Intel Xeon - OpenStack Foundation Nova - Intel 440FX 82441FX PMC

Rocky Linux 8.6 - 4.18.0-372.19.1.el8_6.x86_64 - GCC 8.5.0 20210514

Find More Test Results