テストツールBonnie++の使用


Bonnie++はUNIXファイルシステムの性能をテストするためのテストツールであり、主な目的はシステムの性能ボトルネックを見つけることであり、その名前は著者の好きな歌手Bonnie Raittに由来する.
Bonnie++は同様のテストツールやソフトウェアでは最大で複雑ではないが,使いやすさと出力結果の表示に優れている.
なぜbonnie++が必要なのですか?
次の仮定があります.
メモリは限られているので、cacheは常に上限に達します.したがって
多くのI/O操作は最終的に本当にI/Oを実行する必要がある.したがって
実際のI/Oの速度をテストする必要があります.
UNIXファイルシステムではランダム検索が非常に遅い.
Bonnie++は何をしましたか?
Bonnie++は、既知のファイルサイズのファイル上で一連のテスト操作を実行します.ファイルサイズを指定しない場合、Bonnie++はデフォルトで100 MBを使用します.このデフォルトのサイズは、大規模なサーバでは大きくない可能性があります.そのため、ファイルのサイズは、使用可能なRAMのサイズよりも大きく、一般的には2倍大きくなります.
Bonnie++の使用説明
Bonnie++は、ディスクファイルの読み書き操作を長時間実行し(プロセスレポートを途中で絶えず与える)、小さなレポートを生成します.
Bonnie++のソースコードをダウンロードします.
tar-xzf bonnie++-1.03 eを解凍する.tgz
解凍したディレクトリへ
コンパイルBonnie+:make
これで、Bonnie++がインストールされ、使用できます.
コマンド:
#./Bonnie
You must use the "-u" switch when running as root.
usage: bonnie++ [-d scratch-dir] [-s size(MiB)[:chunk-size(b)]]
                [-n number-to-stat[: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 | -y]


Version: 1.03e

かっこのオプションはすべてオプションで、次のような意味があります.
Bonnie 
プログラム名.
-d開始経路
ディレクトリ名;Bonnieは、このディレクトリの下にテストファイルを作成し、読み取りと書き込みを行います.つまり、テストが必要なファイルシステムにマウントされたディレクトリです.bonnieはディレクトリ名を特別に説明せず、元の名前で使用します.
-s size-in-MB
ファイルのサイズをMB単位でテストします.デフォルトは100 MBです.ファイルサイズが使用可能なメモリの数倍になる必要があります.そうしないと、オペレーティングシステムはファイルの大部分のファイルをメモリにcacheし、bonnieが実行する本当のI/O回数が非常に少なくなります.使用可能なメモリサイズの少なくとも2倍(別の言い方では4倍)を設定することをお勧めします.
-m machine-label
bonnieがレポートを生成するために使用する識別を与えます.このオプションを使用しない場合、bonnieはレポートに特定のIDを指定しません.
-html
html形式でテスト結果-mマシン名を出力
実際には,今回のテストのシナリオ名と考えられ,任意に定義できる.デフォルトはホストのhostnameです.
-rメモリサイズ
メモリサイズを指定します.これにより、-sパラメータでr*2サイズのファイルを作成できます.通常はテスト時間を短縮するために使用されますが、メモリのcacheによってテスト結果が不正確になる可能性があります.
-xテストの回数-uテストファイルの所有者とグループ、デフォルトはbonnie++を実行する現在のユーザーと現在のグループ-gテストファイルのグループであり、デフォルトはbonnie++を実行する現在のグループ-bがファイルを書くたびにfsync()関数を呼び出すことであり、メールサーバやデータベース・サーバーのような通常同期操作が必要な場合に適している.このパラメータを使用しないと、copyファイルやコンパイルなどの操作の効率をテストするのに適しています.
ここでは、ファイルシステムが/mntディレクトリにマウントされているため、作業ディレクトリを/mntに設定します.
[root@de18 bonnie++-1.03e]# ./bonnie++ -d /mnt -s 1000 -u root
Using uid:0, gid:0.
File size should be double RAM for good results, RAM is 1000M.

ファイルサイズの設定が小さく、RAMのサイズが1000 Mなので、ファイルサイズを2000 Mに設定します.
#./bonnie++ -d/test -s 2000 -u root
テスト結果が得られます.
Version 1.03e       ------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
de18          2000M  7849  44 16681  34 15773  37 60869  86 215620  36  9076  98
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  1993  24  8381  16  2545  11  2025  30  8922  17  2576  15
de18,2000M,7849,44,16681,34,15773,37,60869,86,215620,36,9075.7,98,16,1993,24,8381,16,2545,11,2025,30,8922,17,2576,15

テスト結果の分析:
Sequential Outputセクションは、ファイルを書くことに関する情報Sequential Inputセクションは、ファイルを読むことに関する情報Per Chrは、すでに存在するファイルを修正して書き直すことをblock単位で読み書きするファイルBlockは、既に存在するファイルをblock単位で読み書きするファイルRewriteは、blockK/secは、1秒あたりのファイルの読み取りまたは書き込み速度を示す、K単位%CPは、ある段階での操作実行時に平均消費されるCPU Sequential Output 1.Per CharがPer-Characterの意味である.putc()関数を用いてループ書き込みを行い,書き込み毎のバイトが小さく,基本的に任意のI−Cacheに入れることができ,この場合のCPUはputc()コードの処理とディスクファイルの割り当て空間に消費される.2.Blockはwrite(2)関数を使用してファイルを作成します.この場合のCPU消費は、ディスクファイル領域の割り当てにすぎない.3.Rewrite read(2)関数を使用してファイルを読み込み、修正してwrite(2)関数で書き込みます.ファイルの空間が割り当てられているため、この方法はファイルシステムのキャッシュとデータ転送の速度を効果的にテストすることができる.Sequential Input 1.Per Charはgetc()関数を使用してファイル内容をループ読み込み2.Blockはread(2)関数を使用してファイル内容をループ読み込み、ディスク読み取りの効率を効果的にテストします.Random Seekのデフォルトの3つのseeksプロセスは8000回のテストを行います.read(2)関数でファイルのblockを読み込み、同時に10%の操作でwrite(2)関数でblockを修正してファイルに書き込む.このテストでは、作成したファイルサイズよりもメモリ容量が大きい場合、比較的高い値が表示されますが、この値はディスク自体のI/O効率を正確に反映しない可能性があります.Sequential CreateとRadom Createの2つのテストは、作成、読み取り、大量の小さなファイルを削除してディスク効率をテストするために使用されます.ファイル名は7桁の数字と任意の数(0-12)の任意の英字で構成されています.Sequentialセクションでは、アルファベットは数字の後ろにあり、Randomセクションでは数字の前にアルファベットがあります.ファイルを作成する最小値や最大値などのパラメータはbonnie++コマンドラインで-nパラメータで制御できます.
最後に注意しなければならないのは、RAIDをテストする時、マルチCPUのシステムに対して、bonnie++はCPUの最大の潜在力を発揮していない.つまり、bonnie++が発行したI/O要求は通常CPUとディスクの最大圧力に達していない.この時に表示されるスループットは記憶装置が達成できる最大値ではない.従って、これらのデジタルインテリジェントは、単一CPUシステムにおける動作の有効性の指標となる.