I/O performance benchmarking tools at a glance

From Thomas-Krenn-Wiki
Jump to navigation Jump to search

There are multiple I/O benchmarking tools to measure I/O performance. In this article, we provide an overview about different tools.

Block device benchmarks

Block device benchmarks access an unformatted block device (such as a hard disk, SSD, or RAID array) directly. They are especially suitable for comparing different hard drives, SSDs, RAID-controllers, etc...

Block device benchmark overview

The most block device benchmarks, that are listed here, also allow the specification of files in a file system (so they can also be used as file system benchmarks):

dd fio Iometer spew vdbench
Threads Single-Thread Multi-Thread

(numjobs Parameter)

Multi-Thread Single-Thread Multi-Thread
Regular I/O support yes yes yes yes yes
Direct I/O support yes

iflag=direct (read) oflag=direct (write)

yes

--direct=1

no

Iometer offers a Ramp Up Time to minimize cache influence. [1]

yes

--direct

yes

openflags=o_direct

Synchronous I/O support yes

oflag=sync oflag=dsync

yes

--sync=1, see also the options

fsync and fdatasync

yes

--sync

yes

openflags=o_sync (also o_dsync and o_rsync - Pass all three options to the Linux open() function.[2]

More information

File system benchmarks

File system benchmarks unlike block device benchmarks, they do not directly access an unformatted block device. The device must be formatted with a file sytem. File system benchmarks mainly serve to measure the performance of different file systems (for example ext3 compared to xfs) one after the other on the same block device.

Examples for file system benchmarks:

  • IOzone - Note on IOzone under Windows: The Windows binaries available on the IOzone website crash regularly under current Windows versions (2008 R2 64-bit). However, you can use IOzone with these current Windows versions if you build IOzone from the sources against a current version of Cygwin > 1.7 (./configure && make). To use the new binary independently of a Cygwin environment, you must copy some Cygwin DLLs to the iozone directory.
  • dbench

I/O performance measurements

In addition to these benchmark tools, that generate I/O load as well as measure I/O transfer, there are also tools that only measure the I/O performance without generating load. These tools are helpful, when a system is too slow and when you are looking for the performance bottleneck.

Examples for tools to measure I/O performance:

References

  1. Iometer User's Guide Version 2003.12.16 chapter 15.3 Ramp Up Time, page 62:
    The Ramp Up Time field specifies the number of seconds Iometer waits, after all workers report that they have begun working, before beginning to record statistics on each test. You can use this field to avoid recording any statistics during an initial “ramp-up” period (for example, while caches are filled with data). The default value is zero.
    Typical ramp-up times vary from 15 to 60 seconds. Ramp-up time may need to be increased for caching controllers, large servers, or clustered systems.
  2. Vdbench 5.0.2 documentation, chapter 1.16.12‘openflags=’: control over open and close of luns or files, page 44

More information


Author: Werner Fischer

Werner Fischer, working in the Knowledge Transfer team at Thomas-Krenn, completed his studies of Computer and Media Security at FH Hagenberg in Austria. He is a regular speaker at many conferences like LinuxTag, OSMC, OSDC, LinuxCon, and author for various IT magazines. In his spare time he enjoys playing the piano and training for a good result at the annual Linz marathon relay.


Translator: Alina Ranzinger

Alina has been working at Thomas-Krenn.AG since 2024. After her training as multilingual business assistant, she got her job as assistant of the Product Management and is responsible for the translation of texts and for the organisation of the department.


Related articles

Display the Linux directory tree with the tree command
Linux /etc/shadow file
Secure Linux server with CrowdSec