ディスクのテストツールFIO

IOの主流のサードパーティのテストツールは、IometerのをFIOとオリオンは、これら3つのツールが異なっています。

LinuxシステムでのFIOは便利Iometerのウィンドウシステムでは、便利で、オリオンは、シナリオをシミュレートすることができオラクルIOテスト・ソフトウェアは、Oracleデータベースをインストールせずに、Oracleデータベースに読み込まれます。

Linuxシステム上のSAN上に格納されるIOテストFIOツールを使用することです。

1、インストールFIO

./configure,make,makeは解凍し、インストール後にファイルをダウンロードするためのFIO FIO-2.1.10.tar公式サイトでは、あなたはFIOを使用することができます。

図2に示すように、パラメータのFIO

FIOツール方法:
パラメータ:
ファイル名=は/ dev / sdb1がテストファイル名、テスト対象のディスクは、通常、データディレクトリを選択します。
ダイレクト= 1バイパスマシンをテストするバッファリングしています。この テスト結果は、より現実的です。
RW = randwrite I / Oのランダム書き込みテスト
RW =ランダムrandrwテスト書き込み及びI / O読み取り
16Kの単一のファイルサイズIO BS = 16Kブロック
bsrangeを= 512から2048前掲、データブロックの所定のサイズ範囲言及
サイズ=このテストファイルサイズの5グラムの5グラム、4KのそれぞれにIOテスト。
このテストのnumjobs = 30件のスレッド30.ある
あなたは、それぞれがこれまでに終了した5グラム4Kの文書を記述する必要はありません場合は、1000秒のランタイム= 1000テスト時間。
ioengine = PSYNC IOエンジンpyncウェイ
混合読み書きモードで= 30 rwmixwriteは、書き込み%が30を占め
、group_reporting結果を表示する各プロセスに関する要約情報を。
さらに
lockmem = 1gは、専用メモリ部1gをテストするために使用しました。
0 zero_buffersは緩衝液でシステムを初期化します。
各プロセス生成されたファイルのnrfiles = 8ナンバー。
一般的なディスクの読み取りと書き込みテスト・ポイント:
1.読むRamdon = 100%= 100%RW = randread(100%ランダムリード)
2.リードシーケンス= 100%= 100%RW =読む(100%シーケンシャルリード)
3.書き込み= 100%の配列= 100 %のRW =ライト(100% シーケンシャルライト)
4. Ramdon書き込み= 100%= 100%RW = randwrite(100%ランダムライト)
5. 70%が読取りシーケンスを= = RW = 100% RW、rwmixread = 70、rwmixwrite = 30
(70%シーケンシャル読み出し、書き込み順序30%)
6. Ramdon読み出し= 70%= 100%RW = randrw、rwmixread = 70、rwmixwrite = 30
これらの無作為リードの(70%、ランダム30%書き込み)
1)シーケンシャルライト:
説明:ファイルは/ devに2M 1100ギガバイトシーケンシャルライト付き/ SDAパーティションのファイルサイズのメモリブロック

FIO -output = / TMP / 100S100W -name = 100S100W -filename =は/ dev / sdaに-ioengine = libaioを-direct = 1 -blocksize = 2M -size = 1100ギガバイト-rw =書込み-iodepth = 8 -numjobs = 1

2)ランダムライト:
説明:には/ dev / 2Mブロックパーティションのファイルサイズのランダム書き込み1100ギガバイトのファイルSDAを保存

FIO -output = / TMP / 100R100W -name = 100R100W -filename =は/ dev / sdbと:は/ dev / SDC:は/ dev / SDD -ioengine = libaioを-direct = 1 -blocksize = 2M -size = 3356ギガバイト-rw = randwrite  - iodepth = 8 -numjobs = 1

3)シーケンシャルリード:

FIO -output = / TMP / 100S100W -name = 100S100W -filename =は/ dev / sdaに-ioengine = libaioを-direct = 1 -blocksize = 2M -runtime = 1800 -rw =読み取る-iodepth = 8 -numjobs = 1

4)ランダムリード:

FIO -output = / TMP / 100S100Wsdbsdcsdd -name = 100S100W -write_bw_log = bw_log -write_lat_log = lat_log -filename =は/ dev / sdbと:は/ dev / SDC:は/ dev / SDD -ioengine = libaioを-direct = 1 -blocksize = 2M  - ランタイム= 1800 -rw = randread -iodepth = 32 -numjobs = 1

5)ランダムアクセスを混合:
説明:2Mのブロックサイズを有するランダムリードの70%、ランダムライト30%が、ファイルへの/ dev / sdbと:は/ dev / SDC:は/ dev / SDD 3つのパーティションランダムアクセス・メモリ300Sを

FIO -output = / TMP / 100S100W -name = 100S100W -filename =は/ dev / sdbと:は/ dev / SDC:は/ dev / SDD -ioengine = libaioを-direct = 1 -blocksize = 2M -runtime = 300 -rw = randrw  - rwmixread = 70 -rwmixwrite = 30 -iodepth = 32 -numjobs = 1

結果のレポートを表示します。

コードをコピー
[ルート@ RAC01-とnode02]#FIO -filename =は/ dev / SDC4 -direct = 1 -iodepth 1 -thread -rw = randrw -rwmixread = 70 -ioengine = PSYNC -bs = 4K -size = 1000G -numjobs = 50 -ランタイム= 180 -group_reporting -name = randrw_70read_4k_local 
randrw_70read_4k_local:(G = 0):RW = randrw、BS = 4K-4K / 4K-4K / 4K-4K、ioengine = PSYNC、iodepth = 1 
... 
FIO-2.1.10 
50のスレッド開始
21(F = 21):ジョブ[____m____m_m___m____mmm__mmm__mm_m_mmm_m__m__m_m_m] [3.4%が行わ] [7004キロバイト/ 2768キロバイト/ 0キロバイト/ S] [1751/692/0 IOPS] [イータ01H:27メートル:00S] 
randrw_70read_4k_local:(グループID = 0、ジョブ= 50):ERR = 0:PID = 13710:水曜日5月31日10時23分31秒2017 
  読み取り:IO = 1394.2メガバイト、BW = 7926.4キロバイト/秒、IOPS = 1981、ラント= 180113msec 
    CLAT(マイクロ秒):分= 39、最大= 567873、平均= 24323.79、STDEV = 25645.98
     LAT(マイクロ秒):最小= 39、最大= 567874、平均= 24324.23、STDEV = 25645.98 
    CLATパーセンタイル(マイクロ秒)。 
    CLATパーセンタイル(ミリ秒):
     | 1.00th = [3]、5.00th = [5]、10.00th = [6]、20.00th = [7]、
     | 30.00th = [9]、40.00th = [12]、50.00th = [16]、60.00th = [21]、
     | 70.00th = [27]、80.00th = [38]、90.00th = [56]、95.00th = [75]、
     | 99.00th = [124]、99.50th = [147]、99.90th = [208]、99.95th = [235]、
     | 99.99th = [314] 
    BW(KB /秒):最小= 15、最大= 537 = 0.00%に対して、平均= 158.68、STDEV = 38.08 
  ライト:IO = 615280キロバイト、BW = 3416.8キロバイト/秒、IOPS = 854、ラント= 180113msec 
    CLAT(マイクロ秒):最小= 167、最大= 162537、平均= 2054.79、STDEV = 7665.24 
     緯度(マイクロ秒):最小= 167、最大= 162537、平均= 2055.38、STDEV = 7665.23 
     | 1.00th = [201]、5.00th = [227]、10.00th = [249]、20.00th = [378]、
     | 30.00th = [548]、40.00th = [692]、50.00th = [844]、60.00th = [996]、
     | 70.00th = [1160]、80.00th = [1304]、90.00th = [1720]、95.00th = [3856]、
     | 99.00th = [40192]、99.50th = [58624]、99.90th = [98816]、99.95th = [123392]、
     | 99.99th = [148480] 
    BW(KB /秒)分= 6、最大値= 251 = 0.00%に対して、平均= 68.16、STDEV = 29.18 
    LAT(マイクロ秒):50 = 0.01%、100 = 0.03%、250 = 3.15パーセント、500 = 5.00%750 = 5.09パーセント
    LAT(マイクロ秒):1000 = 4.87パーセント
    LAT(ミリ秒):2 = 9.64パーセント、4 = 4.06パーセント、10 = 21.42パーセント、20 = 18.08パーセント、50 = 19.91パーセント
    LAT(ミリ秒):100 = 7.24パーセント、250 = 1.47パーセント、500 = 0.03%、750 = 0.01% 
  CPU:USR = 0.07%、SYS = 0.21パーセント、CTX = 522490、majf = 0、MINF = 7
  IO深度:1 = 100.0%、2 = 0.0%、4 = 0.0%、8 = 0.0%、16 = 0.0 %、32 = 0.0%、> = 64 = 0.0%
     提出する:0 = 0.0%、4 = 100.0%、8 = 0.0%、16 = 0.0%、32 = 0.0%、64 = 0.0%、> = 64 = 0.0を% 
     完了:0 = 0.0%、4 = 100.0% 、8 = 0.0%、16 = 0.0%、32 = 0.0%、64 = 0.0%、> = 64 = 0.0%
     発行:合計= R = 356911 / W = 153820 / D = 0、短い= R = 0 / W = 0 / D = 0 
     レイテンシ:ターゲット= 0、ウィンドウ= 0、パーセンタイル= 100.00パーセント、深さ= 1つの

実行ステータスグループ0(すべてのジョブ):
   READ:IO = 1394.2メガバイト、aggrb = 7926キロバイト/秒、MINB = 7926キロバイト/ S、MAXB = 7926キロバイト/秒、ミント= 180113msec、MAXT = 180113msec 
  WRITE:IO = 615280キロバイト、aggrb = 3416キロバイト/秒、MINB = 3416キロバイト/秒、MAXB = 3416キロバイト/秒、ミント= 180113msec、MAXT = 180113msec 

ディスク統計情報(読み取り/書き込み):
  SDC:IOS = / 153927 356874は、マージ= 0/10 = 310288分の8668598、マダニin_queue = 8978582 = 99.99%utilの
コードをコピー

Mの数のIO = IO実装

平均IO帯域幅BW =
IOPS = IOPS
ラントのスレッドが時間=実行
スラット=提出遅延
CLAT =完全な遅延
LAT =応答時間を
=帯域幅BW
CPU =利用
IOの深さ= IOキュー
IOは提出=提出する個々のIO IO番号を提出する
完全なIOを上記の代わりのためのように数=、しかし、さまざまな補完を提出してください
どのようにショートの多く。発行=ナンバー発行されたリード/ライト要求のIOの、およびそれらをした
IOの遅延分布からIOの待ち時間=

IO =の実行IOサイズの総数
aggrb =グループの総帯域幅
MINB =帯域幅の最小平均
MAXB =最大平均帯域幅。
ミント=最小ランタイムスレッドグループ内の
スレッドグループ内のMAXT =最大稼働時間。

すべてのIOのIOS =グループ合計数が行いました。
マージ=が。IOの数が起こり合計
ティックティックWEは、ナンバー・ディスクが忙しく=。
io_queue =キュー時間に費やされた合計。
UTIL =ディスク使用率

4、IO拡張キューの深さ

ある時点で、Nは、キュー内のIO要求を含むIO要求を、機内があり、ディスクIOリクエストが処理されています。Nは、キューの深さです。
ハードディスクのキューの深さは、アイドル時間を短縮するために絶えず努力してハードディスクを作ることです増やします。
、応答時間が許容範囲内であることが>注-キューの深さを増加させる- >増加利用- >ピークIOPSとMBPSを得た
キューに対応し、IOリクエストの複数を開始しながら、多くのアプローチは、非同期IOを使用して、あるキューの深さを増加させますそこに複数のIO要求は、ある複数のIO要求をキューに相当同期マルチスレッドIOリクエストを開始します。
アプリケーションIOのサイズを大きく、底部に到達した後、より多くのIO要求となり、IO複数に対応するキューは、キュー深度が増加を要求します。
キューの深さが増加し、キュー内にIO待ち時間はトレードオフを必要とする、より大きなIOの応答時間につながる、増加します。

なぜディスクI / Oの並列でそれを処理しますか?主な目的は、アプリケーションのパフォーマンスを向上させることです。これは、仮想ディスク(またはLUN)への物理ディスクよりも非常に重要です。
より短い応答時間ながら、I / Oをコミットするが、システムのスループットが非常に小さい場合。
比較して、(リフトアルゴリズムによって)ヘッドの移動距離を短縮複数のI / Oを送信するだけでなく、IOPSを向上させることができます。
リフトは一人だけが、その後誰もエレベーターに乗ることができた場合は、すぐに目的地(応答時間)に達することができますが、それは待ち(待ち行列の長さ)に長い時間がかかります。
こうしてディスクシステムの複数の提出I / Oスループット及び全体的な応答時間をバランスさせます。

Linuxシステムでは、デフォルトのキューの深さを表示します。

 

モニタのディスクIOコマンド:iostatは1 -mx(インストール方法のiostat:YUM sysstatのインストール)

コードをコピー
#IOSTAT -mx 1 [ローカルホストTMP @ルート] 
Linuxの2.6.32-220.el6.x86_64(localhost.localdomainを)XXXX年XX月XX日_x86_64_(32 CPU)
平均-CPU:%ユーザー%いい%系%iowaitの% %アイドル盗む
12.74 0.00 8.95 0.04 0.00 78.27 
rrqm / S wrqm / SR / SW / S元/秒WMB / S avgrq-SZ avgqu-SZのawait svctm%UTIL:デバイス
SDA 0.18 10.05 0.31 7.67 0.01 0.07 18.77 0.00 0.28 0.14 0.11 
SDBを0.69 0.10 15.74 11.21 0.17 2.45 190.77 0.34 12.10 0.23 0.63


rrqms:毎秒読み取り要求に関連付けられているデバイスは、マージの数(システムコールは、読み出したデータを必要とする場合に読み取ることが見出さ異なる読み取り要求ブロックと同じである場合、VFSは各FS、FSに送信される要求でありますデータ、FS要求マージをマージします)
wrqm / S:秒当たりの書き込み要求に関連付けられているデバイスは、マージの数です。
RSEC / S:毎秒デバイスからのセクター読むの数の。
WSEC / S:毎秒デバイスに書き込まれたセクタ数の
RKB / S :.キロバイト読むの数の毎秒デバイスから
WKB / S:の数秒あたりのデバイスのキロバイトに書き込まれる。
avgrq-SZ:デバイスに発行されたリクエストの(セクタ内の)平均サイズのセクタの平均要求サイズ、。
avgqu-SZ:それはリクエストキューの平均長さです。間違いなく、平均キューの、できるだけ短いとしてキュー長は、デバイスに発行されたことの長さを要求する。    
のawait:各IO要求の平均処理時間(ミリ秒、マイクロ秒)。ここでは、IOの応答時間は、一般にシステムのIO応答時間が5ミリ秒未満未満でなければならないことが理解されるであろう、10msの比較的大きい場合よりも大きいです。
この時間は長く大きな違い、時間キュー、記載されているシステムに対しsvctm、それらの間の差が小さいほど、そのキュー短い時間を、待つより大きく、一般的に、と言うことですつまり、時間とキューサービス時間を含みます問題。 svctmは:(ミリ秒)サービスデバイスI / O操作の平均持続時間を表します。もしsvctm値と非常に近い待つ、ほとんどI / O待ち、非常に優れたディスクパフォーマンスを示していません。
値がの値のawait svctmよりもはるかに高い場合のI / Oキュー長すぎる待って、システム上で実行中のアプリケーションが遅くなりますと述べました。 %utilのすべてのIO処理時間の時間内に、総時間の統計値で割りました。例えば、1秒の統計的間隔場合、デバイスは、IO処理0.8秒、アイドルの0.2秒、デバイスutilの%= 0.8 / 1 = 80%を有し、
これパラメータは、一般に、ビジー装置を意味し、もしこのパラメータは100%がディスク装置(%のUTILがボトルネックにディスク使用率そう必ずしも、同時実行ディスクため100%であっても、当然のことながら、複数のディスク場合)近いフル稼働になっていることを示しています

おすすめ

転載: www.cnblogs.com/klb561/p/11939355.html
おすすめ