SITE TOP  Linuxシステム構築Tips  bonnie++の使用方法

1-2

  bonnie++の使用方法



   




 bonnie++の使用方法

ハードディスクベンチマークツール「bonnie++」を用いて、ディスクのIO性能を測定する際の手順メモです。同ツールを使用することで、シーケンシャルread/write、ランダムアクセス等の性能測定を一度に行うことができます。bonnie++はバージョン「1.03」を、コンパイラはgccを使用しています。

なお、bonnie++ 1.03では、近年供給されているような高性能なハードディスクやSSDの性能測定用に使用することが想定されておらず、測定した処理時間が短過ぎた場合には、測定結果の表示が「+++++」「+++」となってしまう項目があります。このため、ソースを少し修正してからmakeしています。

  • ソースのダウンロード
    次のURLより、bonnie++ 1.03のソースをダウンロードする。
    http://www.coker.com.au/bonnie++/

  • tarファイルの展開
    $ tar xzvf bonnie++-1.03.tgz
    $ cd bonnie++-1.03

  • configure
    $ ./configure

  • bonnie.h の修正
    $ vi bonnie.h

    修正前
    #define MaxDataPerFile (MaxNameLen + 6 + 1 + 4)
    #define MinTime (0.5)
    #define Seeks (8192)
    修正後
    #define MaxDataPerFile (MaxNameLen + 6 + 1 + 4)
    #define MinTime (0.01)
    #define Seeks (8192)

  • make
    $ make


Ubuntu等、APTパッケージ管理システムでbonnie++がインストール可能なディストリビューションでは、次のようなコマンドでも簡単にbonnie++をインストールすることができます。

  • apt-getコマンドでbonnie++をインストール
    $ sudo apt-get install bonnie++


RHEL、CentOS、Scientific Linuxでは、Repoforge(旧称:RPMforge)で提供されているbonnie++のRPMを利用してbonnie++をインストールすることもできます。

  • RPMのダウンロード
    Repoforgeより、環境に応じたbonnie++のRPMをダウンロードする。
    http://pkgs.repoforge.org/bonnie++/

  • rpmコマンドでbonnie++をインストール
    # rpm -ihv bonnie++-1.96-1.el6.rf.x86_64.rpm





  • 実行
    $ ./bonnie++ -d /tmp


  • 指定可能なオプション

    • -bオプション : write時にバッファキャッシュを使わないよう指定する。
      (Linuxでは本オプションを指定しても効果無し?)

    • -dオプション : 測定対象のディレクトリを指定する。

    • -nオプション : メタデータ操作のベンチマーク実行時に作成する一時ファイルのファイル数・ファイルサイズ・ディレクトリ数を指定する。

      例えば、「-n 256:4096:512:16」と指定した場合、「ファイル数 256*1024、最大ファイルサイズ 4096byte、最小ファイルサイズ 512byte、ディレクトリ数 16」の条件下で、メタデータ操作のベンチマークが実行される。

      「-n 16:0:0:4」と指定した場合は、「ファイル数 16*1024、ファイルサイズ 0byte、ディレクトリ数 4」の条件下で実行される。この際、1ディレクトリ配下のファイル数は「16*1024 / 4」になる。

      本オプションを指定しない場合、デフォルト値の「16:0:0:1」=「ファイル数 16*1024、ファイルサイズ 0byte、ディレクトリ数 1」の条件下で実行される。

    • -qオプション : 実行経過を表示しない。

    • -rオプション : メモリサイズを指定する。単位はMB。

    • -sオプション : シーケンシャルアクセスのベンチマーク実行時に作成する一時ファイルの最大サイズを指定する。単位はMB。

      デフォルトでは、バッファキャッシュによる測定誤差を小さくするため、実メモリサイズの2倍の一時ファイルが測定時に作成される。測定対象のパーティションの空き容量に注意が必要。

      デフォルトより小さいサイズを指定する場合、「-s 512 -r 256」というように-rオプションと組み合わせて使用する。

    • -uオプション : 実行ユーザを指定する。通常は一般ユーザで実行。rootユーザで実行する場合には、「-u root」オプションを付けることが必要。

    • -xオプション : 連続して測定する場合、実行回数を指定する。


  • 実行結果例
    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
    banlinux         1G 20296  82 24762  12 11088   5 20206  70 33167   6 202.2   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 33876  99 187797  99 49498  99 34445  99 248845 100 48371 100
    banlinux,1G,20296,82,24762,12,11088,5,20206,70,33167,6,202.2,0,16,33876,99,187797,99,49498
    ,99,34445,99,248845,100,48371,100


  • ベンチマークの実行内容・結果の見方

    シーケンシャルアクセスのベンチマーク
    1. Writing with putc() : キャラクタ単位の書き込み
    2. Writing intelligently : ブロック単位の書き込み
    3. Rewriting : ブロック単位の再書き込み
    4. Reading with getc() : キャラクタ単位の読み込み
    5. Reading intelligently : ブロック単位の読み込み

    ランダムアクセスのベンチマーク
    1. start 'em : ファイルのランダムシーク

    メタデータ操作のベンチマーク
    1. Create files in sequential order : 規則性のあるファイル名順でファイル作成
    2. Stat files in sequential order : 規則性のあるファイル名順でファイル情報の取得
    3. Delete files in sequential order : 規則性のあるファイル名順でファイル削除
    4. Create files in random order : ランダムなファイル名順でファイル作成
    5. Stat files in random order : ランダムなファイル名順でファイル情報の取得
    6. Delete files in random order : ランダムなファイル名順でファイル削除



  • 性能測定結果一覧
公開日:2005/09/08 更新日:2012/01/09
はてなブックマークに追加 はてなブックマーク Yahoo!ブックマーク




  Linuxシステム構築Tips - トップページ へ戻る

  HDDベンチマーク手順+性能測定結果一覧 (hdparm,dd,bonnie++) はてなブックマーク

  Linuxファイルシステムベンチマーク第1回 ext2,ext3,JFS,ReiserFS,XFS,NTFS はてなブックマーク

  Linuxファイルシステムベンチマーク第2回 ext3,ext4,JFS,ReiserFS,XFS,NILFS2 はてなブックマーク

  RAMディスクのIO性能をチューニングに活用すべし (/dev/shm) はてなブックマーク

 この分野で参考になるホームページのリンク集

 turbolinux - HDDのパフォーマンスをテストする
    ベンチマークツールbonnie++を用いた性能測定に関する解説。

 Linux man page - bonnie++(8)
    bonnie++の使用方法をmanページ風にまとめたホームページ。(英文)