packages icon



 bonnie++(8)                                                     bonnie++(8)




 NAME
      bonnie++ - program to test hard drive performance.


 SYNOPSIS
      bonnie++ [-d dir] [-s size(MiB)[:chunk-size(b)]] [-n
      number-to-stat(*1024)[:max-size[:min-size][:num-directories]]] [-m
      machine-name] [-r ram-size-in-MiB] [-x number-of-tests] [-u
      uid-to-use:gid-to-use] [-g gid-to-use] [-q] [-f] [-b] [-D] [-p
      processes


 DESCRIPTION
      This manual page documents briefly the bonnie++, program.

      Bonnie++ is a program to test hard drives and file systems for
      performance or the lack therof. 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 (NB a configuration scoring a performance
      result of 2000 and a CPU result of 90% is better in terms of CPU use
      than a configuration delivering performance of 1000 and CPU usage of
      60%).

      There are two sections to the program's operations. The first is to
      test the IO throughput in a fashion that is designed to simulate some
      types of database applications. The second is to test creation,
      reading, and deleting many small files in a fashion similar to the
      usage patterns of programs such as Squid or INN.

      All the details of the tests performed by Bonnie++ are contained in
      the file /usr/share/doc/bonnie++/readme.html


 OPTIONS
      For Bonnie++ every option is of the form of a hyphen followed by a
      letter and then the next parameter contains the value.

      -d   the directory to use for the tests.

      -s   the size of the file(s) for IO performance measures in megabytes.
           If the size is greater than 1G then multiple files will be used
           to store the data, and each file will be up to 1G in size.  This
           parameter may include the chunk size seperated from the size by a
           colon.  The chunk-size is measured in bytes and must be a power
           of two from 256 to 1048576, the default is 8192.  NB You can
           specify the size in giga-bytes or the chunk-size in kilo-bytes if
           you add g or k to the end of the number respectively.




                                    - 1 -         Formatted:  April 26, 2024






 bonnie++(8)                                                     bonnie++(8)




           If the specified size is 0 then this test will be skipped.

      -n   the number of files for the file creation test. This is measured
           in multiples of 1024 files. This is because no-one will want to
           test less than 1024 files, and we need the extra space on braille
           displays.

           If the specified number is 0 then this test will be skipped.

           The default for this test is to test with 0 byte files. To use
           files of other sizes you can specify
           number:max:min:num-directories where max is the maximum size and
           min is the minimum size (both default to 0 if not specified). If
           minimum and maximum sizes are specified then every file will have
           a random size from the range min..max inclusive.  If you specify
           a number of directories then the files will be evenly distributed
           amoung that many sub-directories.

           If max is -1 then hard links will be created instead of files.
           If max is -2 then soft links will be created instead of files.



      -m   name of the machine - for display purposes only.


      -r   RAM size in megabytes. If you specify this the other parameters
           will be checked to ensure they make sense for a machine of that
           much RAM. You should not need to do this in general use as it
           should be able to discover the RAM size. NB If you specify a size
           of 0 then all checks will be disabled...


      -x   number of test runs. This is useful if you want to perform more
           than one test.  It will dump output continuously in CSV format
           until either the number of tests have been completed, or it is
           killed.


      -u   user-id to use.  When running as root specify the UID to use for
           the tests.  It is not recommended to use root (since the occasion
           when a Bonnie++ bug wiped out someone's system), so if you really
           want to run as root then use -u root. Also if you want to specify
           the group to run as then use the user:group format.  If you
           specify a user by name but no group then the primary group of
           that user will be chosen.  If you specify a user by number and no
           group then the group will be nogroup.


      -g   group-id to use.  Same as using :group for the -u parameter, just
           a different way to specify it for compatibility with other



                                    - 2 -         Formatted:  April 26, 2024






 bonnie++(8)                                                     bonnie++(8)




           programs.


      -q   quiet mode. If specified then some of the extra informational
           messages will be suppressed.


      -f   fast mode, skips per-char IO tests.


      -b   no write buffering.  fsync() after every write.


      -p   number of processes to serve semaphores for.  This is used to
           create the semaphores for synchronising multiple Bonnie++
           processes.  All the processes which are told to use the semaphore
           with -y will start each test at the same time.  Use the value -1
           to delete the semaphore.


      -y   wait for semaphore before each test.


      -D   use direct IO (O_DIRECT) for the bulk IO tests


 MULTIPLE PROCESSES
      Run the following commands to run three copies of Bonnie++
      simultaneously:

      bonnie++ -p3

      bonnie++ -y > out1 &

      bonnie++ -y > out2 &

      bonnie++ -y > out3 &


 OUTPUT
      The primary output is plain-text in 80 columns which is designed to
      fit well when pasted into email and which will work well with Braille
      displays.

      The second type of output is CSV (Comma Seperated Values). This can
      easily be imported into any spread-sheet or database program. Also I
      have included the programs bon_csv2html and bon_csv2txt to convert CSV
      data to HTML and plain-ascii respectively.

      For every test two numbers are reported, the amount of work done
      (higher numbers are better) and the percentage of CPU time taken to



                                    - 3 -         Formatted:  April 26, 2024






 bonnie++(8)                                                     bonnie++(8)




      perform the work (lower numbers are better). If a test completes in
      less than 500ms then the output will be displayed as "++++". This is
      because such a test result can't be calculated accurately due to
      rounding errors and I would rather display no result than a wrong
      result.


 AUTHOR
      This program, its manual page, and the Debian package were written by
      Russell Coker <russell@coker.com.au>, parts of the program are based
      on the work of Tim Bray <tbray@textuality.com>.

      The documentation, the Perl scripts, and all the code for testing the
      creation of thousands of files was written by Russell Coker, but the
      entire package is under joint copyright with Tim Bray.


 SIGNALS
      Handles SIGINT and does a cleanup (which may take some time), a second
      SIGINT or a SIGQUIT will cause it to immediately die.

      SIGXCPU and SIGXFSZ act like SIGINT.

      Ignores SIGHUP.



 BUGS
      The random file sizes will add up to different values for different
      test runs.  I plan to add some code that checks the sum and ensures
      that the sum of the values will be the same on seperate runs.


 AVAILABILITY
      The source is available from http://www.coker.com.au/bonnie++ .

      See http://etbe.coker.com.au/category/benchmark for further
      information.


 SEE ALSO
      bon_csv2html(1), bon_csv2txt(1)












                                    - 4 -         Formatted:  April 26, 2024