Linux hard drive benchmark & bottleneck testing software suite for performance

The stress test of hardware (hard drive benchmarks) is a simplistic test. There are a number of benchmarking applications software that can be used as hard disk (storage) stress testing. My favorite is Bonnie++ software.

From the project home page:
Bonnie++ is a benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance. Then you can decide which test is important and decide how to compare different systems after running it. I have no plans to ever have it produce a single number, because I don’t think that a single number can be useful when comparing such things.

There are a many different types of file system operations which different applications use to different degrees. Bonnie++ tests some of them and for each test gives a result of the amount of work done per second and the percentage of CPU time this took. For performance results higher numbers are better, for CPU usage lower are better.

It test more than 2Gb of storage on 32-bit machines, and tests for file creat(), stat(), unlink() operations.

Install bonnie++ for Linux hard drive benchmark test

Download from official web site or use apt-get to install bonnie++:
# apt-get install bonnie++

Source code installation

Download source code and compile as follows:
$ cd /tmp
$ wget http://www.coker.com.au/bonnie++/bonnie++-1.03a.tgz
$ tar -zxvf bonnie++-1.03a.tgz
$ cd bonnie++-1.03a
$ ./configure
$ make
# make install

How do I use bonnie++?

Simply type bonnie++ or bonnie:
$ bonnie++
OR
$ bonnie
Output:

Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
server1          4G 22983  48 17804   7  8880   2 28170  49 32778   4 101.3   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
server1,             4G,22983,48,17804,7,8880,2,28170,49,32778,4,101.3,0,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++

Caution:This test can put very high load on the disk subsystem make sure you schedule test and inform users.

You can learn about output and result here. Read man page of bonnie for more information.

🐧 If you liked this page, please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source & DevOps topics via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
6 comments… add one
  • Anonymouse May 1, 2012 @ 20:50

    This is badly outdated. Read the manual for newer information and usage info. If you follow this, it’ll build but won’t run.

  • Toni XD Jun 3, 2011 @ 17:16

    But there are some things completet more quickliy than these things!!!
    I already knew that!!!

  • daniel May 31, 2011 @ 19:17

    +++++ instead of a real number per second. This happens when that particular benchmark completes too quickly.

  • Toni XD May 3, 2011 @ 6:56

    why are there these +++++ in the picture of this test????
    if somebody knows tell me please!!!!
    it is very important for me!!!

  • Ppaul Oct 10, 2010 @ 13:14

    I am finding something for Centos, non-debian based.

  • Ad Manager Aug 4, 2008 @ 17:59

    Care to explain the output for your example?

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.