ディスクIOPSとsar tpsの関係


13

32ビットCentOS 6.2で実行されているアプリケーションのIOPS要件を推定しようとしています。SATAディスクを搭載したマシンで測定を開始しましたが、sarで測定されたIOPSとtpsの違いに戸惑っています。

ウィキペディアによると、SATAディスクは75〜100 IOPSを実行する必要があります。iopingユーティリティは、ランダムアクセステストでこれを確認しているようです。

# ./ioping -R /dev/sda
--- /dev/sda (device 931.0 Gb) ioping statistics ---
279 requests completed in 3.0 s, 92 iops, 371.3 kb/s
min/avg/max/mdev = 2.7 ms / 10.8 ms / 130.8 ms / 7.9 ms

しかし、sarによって生成されるtps値ははるかに高い(/ dev / sda):

# iostat 1
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
       0.17    0.00    2.02   14.86    0.00   82.96

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             559.00         0.00    142600.00          0     142600
dm-0          18433.00         0.00    147464.00          0     147464
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0

このロードがシーケンシャル(さまざまなブロックサイズのdd)またはランダムアクセス(ioping)の場合、値は同じままです。tpsは実際にはIOPSであり、大きなチャンクが転送されると低下することを期待していました。

それでは、TPS値は正確に何を意味するのでしょうか?そして、それはIOPSとどのように関係していますか?


2
ディスクキャッシュが原因でTPS値のIOPSが高くなっていると思います。
ceejayoz

1
OK、256kBブロックのddで10GBのファイルを実際にキャッシュに入れようとしましたが、〜90秒後にtpsが〜200に低下したため、おそらく正しいでしょう。しかし、それでも80と200はまったく違います...読み取りと書き込みのIOPSが異なる可能性はありますか?そして、この値から必要なIOPSを把握する方法はありますか?
ピストル

1
IOPS後の理由を説明できますか?読み取りと書き込みは、ここで同じポットに投入されるまったく異なる靴です。
ニルス

その理由は、HWの最小要件を説明する必要があるからです。ネットワーク経由でデータを受信し(ここでは一定のビットレートを想定できます)、受信したデータをディスクに書き込むサーバーがあります。データはファイルに順番に書き込まれますが、数百(たとえば800)が並行して存在する可能性があります。クライアントの数が特定のポイントに達すると、大きなiowaitを取得し始めることがわかりました。私が達成できる実際のディスクスループットは約25MB / sであり、これは非常に低いです。より高いビットレートのクライアントは35MB / s、純粋に約130MB / sのシーケンシャルを実行できます。私が推測するように、IOPSは...ここで重要なものである
pystole

回答:


6

トランザクションは、RAWディスク(例ではdm-0)に書き込まれる単一のIOコマンド(フェッチブロック/書き込みブロック)です。linux-kernelは、これらのコマンドをより良い順序に並べようとするか、それらをより効率的なコマンドに圧縮しようとします(たとえば、1つのブロックを取得し、このブロックの直後に別のブロックを取得するのではなく、2つのブロックを一度に取得します)。これらは、ディスクコントローラーに送信されるトランザクション(sdaのtps)です。

優れたコントローラーの移行には、トランザクションの実際の数をさらに減らす独自のロジックがあります。

トランザクションはSCSIコマンドである可能性があります。「セクター2からcrontoller 1ターゲット2 lun 3に2 GBを書き込みます。22)。これを見るとわかるように、スループット数と直接相関させることはできません。

あなたが求めているのは、持続的な書き込み速度です。ここには、いくつかの制限要因があります。

  • クライアント接続:ネットワークがギガビットの場合、入力が100 MB / sを超えることはありません
  • ディスクコントローラー:これが3 Gbコントローラーの場合、300 MB / sを超えるスループットはありません。
  • ディスク:持続的な書き込みパフォーマンスに対するメーカーの価値を調べる
  • ファイルシステム:OSはデータを処理する必要があるため、少しオーバーヘッドがあります-RAMディスクでテストしてください...

あなたのシステムに対する私の推測は次のとおりです。RAID10または5を実行でき、少なくとも6つの高速(15k)ディスクを取得できる優れたハードウェアRAIDコントローラーを入手します。

業務用には、SATAではなくSASを使用してください。


わかりました。キャッシュ、並べ替え、マージがたくさんあるため、IOPSは書き込みには意味がありません。おわりに...ありがとう。
ピストル

5

TPS値は読み取りと書き込みを表すことにも注意してください-x。読み取りと書き込みが分離されている拡張ビューのスイッチを使用できます(r / s =読み取りIOPS、w / s =書き込みIOPS)。

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
vda               0.07    24.65    0.30   18.95    30.65   330.22    18.74     0.07    3.61   0.98   1.89

ええ、あなたは正しいです。しかし、私の場合、書き込みはほぼ100%あり、読み取りはほとんどありません。
ピストル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.