fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 19 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, including complete IO latencies and percentiles. Fio is in wide use in many places, for both benchmarking, QA, and verification purposes. It supports Linux, FreeBSD, NetBSD, OpenBSD, OS X, OpenSolaris, AIX, HP-UX, Android, and Windows.
|Operating Systems||POSIX Linux BSD Solaris HP-UX AIX OS X Android Windows|
Release Notes: Full support for IPv6 for the net I/O engine. Windows threading fixes. Support for ranges in the 'startdelay' option. Adds rbd (rados block device) engine support. Various fixes for blktrace playback on Linux. Adds OpenBSD support. An option added to manually seed random generators. Various client/server fixes. A fix for a crash on some file locking options. Adds support for fast software-based xxhash, and support for testing checksum speeds. A fix for not always honoring the 'openfiles' setting. Support for setting policy on how to distribute CPUs set for jobs. Support for data retention testing with verify.
Release Notes: Adds JSON output for client/server. A fix for Windows build breakage in the previous release. A fix for ioengine specific options. Adds support for O_ATOMIC atomic writes on Linux. A failsafe check for realloc() failure during logging. A fix for a Solaris thread problem. Various man page and documentation updates. A fix for a crash on PowerPC without the mfspr instruction.
Release Notes: This release adds basic support for an ACT (aerospike) profile, fixes atomic write support, adds various parsing fixes, makes a big revamp of the included graphing support, makes the IOPS log includes bandwidth, adds support for specific randomness settings for both reads and writes, adds support for random vs. sequential blocksize settings, fixes a potential verification failure, and adds multicast support for the net ioengine.
Release Notes: Integration of the gfio GTK frontend. Better Android integration. The initial file fill honors data compression settings. An option for controlling randomness of I/O (percentage_random) instead of being fully random or fully sequential. Fixes a bug in uneven pattern sizes for verification. Various other important fixes.
Release Notes: This release adds an --eta-newline option to insert ETA new line at fixed intervals. Fixes for the CPU clock, notably PPC. Fixes for workloads with read/write file locking. A fix for skewed latencies with rated IOPS. Fixes a bug with block sizes varying more than 64x. Improves the LFSR implementation. Fixes missing JSON bandwidth output. Various fixes for the Android platform. Uses ginstall on Solaris. Fixes man page installation. Other bugfixes and improvements.