In We talked about open-source tools for evaluating CPU and memory performance. Today, we discuss benchmarks for file systems and storage systems on Linux — Interbench, Fio, Hdparm, S, and Bonnie.
Photo - - Unsplash
Fio (which stands for Flexible I/O Tester) generates data I/O streams from the disk to evaluate the performance of the Linux file system. The utility can also be run on Windows — it requires installing the command line interface. . A setup guide is available in .
The author of fio is Jens Axboe (), for the IO subsystem in Linux and the developer of the utility for tracing I/O operations. He created fio of manually writing programs for specific load testing.
The utility will calculate IOPS and throughput of the system, as well as allow assessing the depth of the I/O operation queue. The utility works with special files (with the .fio extension), which contain the settings and test conditions. There are several test options, for example, there are random writes, reads, and rewrites. Here is the content of a file for the first case:
[global]
name=fio-rand-read
filename=fio-rand-read
rw=randread
bs=4K
direct=0
numjobs=1
time_based=1
runtime=900
Today, fio is used by large companies — the utility is employed in , and .
The utility was written by Canadian developer Mark Lord back in 2005. It is still and is included in many popular distributions. The main purpose of hdparm is to configure drive parameters. However, the tool can be used to conduct simple benchmarks, such as measuring read speed. For this, you need to write the command in the console:
$ sudo hdparm -t /dev/sdbThe system will generate a response like this:
Timing buffered disk reads: 242 MB in 3.01 seconds = 80.30 MB/secRegarding drive configuration, hdparm allows changing cache size, modifying sleep and power settings, as well as securely erasing data on SSDs. However, as specialists from ArchLinux advise, careless changes to system parameters can make data on the disk inaccessible and even damage the drive. Before working with hdparm, it is better to familiarize yourself with the guide — just type the command man hdparm in the console.
This is a set of benchmarks for assessing the performance of input/output systems. The utility was created by from the AlgoDev group, which includes employees of the Italian .
All benchmarks are bash scripts, the performance of data storage systems — throughput, latency, scheduler performance. For example, the benchmark throughput-sync.sh 'bombards' the storage system with read or write requests (in this case, the already mentioned utility fio is used). Here is .
Another script, comm_startup_lat.sh, measures the latency of reading data from the disk with a 'cold cache' (when it has no needed data). The code can also .

Photo - - Unsplash
A utility for assessing file system performance, developed in 1989. Its author is engineer Tim Bray. With Bonnie he aimed to the operation of computing systems involved in the project at the University of Waterloo.
Bonnie random reading and writing of data to the disk. Afterward, the utility displays parameters such as the number of bytes processed per , as well as the CPU load percentage. The source code of the benchmark can .
Based on Bonnie, another suite of tools for hard disk testing is built — (written in C++, instead of C). It features additional benchmark tools. For example, zcav to assess the performance of different HDD zones. Bonnie++ for testing mail servers and database servers.
The utility was developed by an Australian anesthesiologist known for his contributions to Linux kernel development and work on theInterbench helps configure the parameters of I/O and file system schedulers.
Interbench simulates the behavior of the CPU scheduler during the execution of interactive tasks. These interactive tasks can include working with sound and video, launching computer games, or simply dragging a dialog window in the operating system.
The source code, examples, and configuration recommendations can be found in the .
What we write about in our blogs:
![]()
![]()
![]()
![]()
![]()
![]()
Source: habr.com
