IOWAIT-IO性能をテストするルーラー

2187 ワード

あるお客様からメールがあり、自分のボードと現在テスト中のMarvell 6281マザーボードを比較テストしたことがあることを教えてくれました.ディスクI/O操作時のCPU空き時間に差があることを確認します.6281のIO効率が低すぎるかどうかを尋ねる.
mpstatデータは次のとおりです.
Marvell 6281
CPU %usr %nice %sys %iowait %irq %soft %idle
all 0.00 0.00 5.98 93.69 0.00 0.33 0.00
all 0.00 0.00 3.65 96.01 0.00 0.33 0.00
all 0.66 0.00 7.97 89.37 0.00 1.99 0.00
M5000
CPU %usr %nice %sys %iowait %irq %soft %idle
all 17.67 0.00 22.33 0.00 0.00 0.00 60.00 
all 11.33 0.00 22.00 0.00 0.00 0.00 66.67
all 7.33 0.00 16.33 0.00 0.00 0.00 76.33 

お客様はM 5000のiowaitが0だと思っているので、CPUがIOの完成を待つ時間はありません.そのため、彼のディスクの性能はとても良くて、CPUは介入しません.6281のiowait%が高すぎて、CPUが待っていて、ディスクの効率が低下しています.

误区:CPU在iowait的时候等着马鹿。


ここで一番命がけなのはiowait概念です.参考mpstatマニュアル
CPUのタイムスライスはmpstatの目に多くの種類に分けられ,UP(unique processor)システムでは
%usr + %nice + %sys + %iwoait + %irq + %soft + %steal + %guest + %idle = 100%
%usr,CPUがユーザプログラムを実行する時間比

%nice,CPU実行プロセス優先度を変更したユーザプログラム時間比

%sys,CPUがカーネルプログラムを実行する時間比

%iowait,CPUがディスクI/O要求を持っている時の_アイドル_じかんひ



%idle,現実CPUにディスクI/O要求がない場合の_アイドル_じかんひ

その中の%usr+%nice+%sysは本当にCPUが忙しい時間であり、その他は空き期間に属している.以上より,6281はディスクテスト時に0+0+5.98=5.98%のCPU時間を用いてI/O要求を処理したが,M 5000は17.63+0+2.33=40%を用い,M 5000のディスクIOがCPU時間をより消費していることが明らかになった.

iowait指標


%iowaitも同様に空き期間ですが、ディスクI/Oの完了を待つ空き時間に細分化されており、CPUが馬鹿にならないなどしています.CPUに他の要求があれば、すぐに応答します.
高いiowaitは、CPUがIO要求の処理を早期に完了したことを表し、ディスクIOの完了を待つ.iowaitが100%に近づくと、CPUが暇であると同時にディスクIOの性能が低すぎて、ディスクIOがシステムのボトルネックになっているとまとめられます.
M 5000は40%のCPU時間を費やして要求を処理し、この時IO伝送はすでに完了し、彼は待つ時間がなかった.これは、CPUの性能がディスクIOに比べてかえって心力が不足しているように見え、密集型IOリクエストのシステムではCPUが苦労しているように見えます.

校正IO性能


IO性能の校正には超多くの方法がある
ハードウェア形成ディスクアレイraidx

HDparmディスク性能の微調整

適切なIO scheduler(/sys/block/sda/queue/scheduler)を選択

同様に以下のツールに合わせて試してみることもできます
mpstat、SMPシステムの下での監視ツールに適用され、sysstatに含まれる

iostatは、IO都がリクエストを書いた回数などの詳細データを見てsysstatに含めることができます

sar、ネットワークIOパフォーマンスデータを表示できます

oprofile、カスタマイズ可能なシステム微調整ツール、動作方式はsystemtapと似ています

fio

nmon

iozone