IOPS性能値のRW比を変更した場合の概算性能を見積もる方法

 

※本ナレッジは学術的な根拠に基づくものではなく私個人が利用している評価方法です。結果についての責任は負いかねますので、ご利用の際は自己責任でお願いします。

 

 

背景

ストレージの性能指標としてIOPSやレイテンシやスループットを参照する場合がある。
多くの場合、ランダム Read/WriteRR/RW)とシーケンシャル Read/WriteSR/SW)における限界性能値であったり、サンプルワークロードとして、OLTP 32KB Read 70% や、RDMS Read 40%などの負荷に対する性能値として提示されている場合がある。
とはいえ、実際の環境ではそれらのIOパターンと一致していないことも、当然ながら多い。
そのようなときに、RW比が7:3ではなく、6:4のときのIOPS性能値が知りたいケースもある。

本記事ではそのようなときに既存の性能情報からざっくりと必要なRW比での情報を見積もる方法を紹介する。
 

 

必要な情報

そもそもの話として、実環境のRW比と必要となるIOPS性能値がわかっていなければ評価のしようがない。
また、平均的なIOサイズについても知っておく必要がある。

そして、評価対象であるストレージの性能情報についてもなるべく多くのパターンを入手する必要がある。
実環境のRW比、IOPSIOサイズについては把握できていない環境も多いが、LiveOptics(無償)などのアセスメントツールを使うことで簡単に確認できる。

ストレージの性能情報についてはベンダーに確認する、もしくはSizing Toolなどから入手できる場合もある。
このとき、IOサイズのパターンが多ければ多いほど良い。IOサイズによってIOPSは大きく変わるが、RW比と異なり異なるIOサイズでの性能情報を見積もることは困難であるため、実環境に近いIOサイズで検証している性能情報を入手することが重要である。

 

 

100Read / 100Writeの限界性能値のみがわかる場合。

 

実環境の平均IOサイズが8KBRead 50%で、評価対象ストレージの8KBでのMax Read / Max Write IOPS情報のみが判明しているケースを仮定する。

ここでは仮に以下のように想定する。

Max Read IOPS120000

Max Write IOPS30000

 

この情報からこのストレージのRW 7:3の場合のIOPSを想定してみる。
このとき、それぞれのIOPSに比率をかけて合計する方法が思い浮かぶかもしれない。具体的には以下のような計算だ。

120,000*0.5 + 30,000*0.5 = 75,000 IOPS

このような計算をするのは間違いである。

なぜならば、Write IO部分を切り出した際に、75000*0.5=37500 IOPSとなってしまい、ストレージのMax Write IOPSを超えてしまっていることがわかる

 

このような場合はIOPSで計算するのではなく、レイテンシから計算するのが良い。
IOPSとレイテンシは逆数の関係にあるため、Max Read/Write時のレイテンシを以下のように見積もる

 

Max Read IOPS時のレイテンシ = 1/120000 = 8.33 usec

Max Write IOPS時のレイテンシ = 1/30000= 33.33 usec

 

それぞれのレイテンシにそれぞれの比率をかけて、合計の平均レイテンシを計算する。

8.33 * 0.5 + 33.33 * 0.5 = 20.83 usec

この平均レイテンシを逆数を取って元に戻すとRead 50%IOPS限界性能の概算値になる。

1/20.83 = 48000 IOPS

 このように計算すればRead/Writeそれぞれの限界性能を超えることなく見る盛ることができる。

 

RW 7:3 IOPSグラフが提供されている場合。

 

IOサイズ 32KB Read 70% IOPSグラフ(縦軸IOPS/横軸レイテンシ)が提示されている状況で、同じく32KB Read 60%の場合の性能情報を見積もって、要件となるIOPS性能値を満たすかどうかを確認したいとする。

↓IOPSグラフの例



 

このようなケースでの考え方は2通りある。

①コンサバ案:Write IOPSのみに着目して考える方法
②アグレッシブ案:レイテンシからIOPSを割り出す方法

 

①の方法は、WriteよりもReadのほうが性能が良い、という事実に着目し、Write IOPSが要件を満たしていれば必然的にRead IOPSも満たせているという考え方である。

②の方法は前述したやり方と同様にReadWriteそれぞれのレイテンシからIOPSを算出する方法である。

 

 

①コンサバ案:Write IOPSのみに着目して考える方法

IOPS(6:4)でのIOPS性能値の要件がTとする。
その場合のWrite IOPS 要件は0.4 T となる。
IOPSグラフ(7:3)でのIOPST’としたときに、Write IOPS 0.3T’ となる。
IOPSグラフ内で以下の関係が成り立つT' を求める。

0.4T = 0.3T

 
T'についてこの式を解くと以下のようになる。

T= T * 4/3

したがって、IOPS性能値要件(6:4)の値を 4/3倍したIOPSをグラフから参照することで、Write IOPS要件を満たす(= Read IOPS要件も満たす)かどうかを確認することができる
 

 

②アグレッシブ案:レイテンシからIOPSを割り出す方法

R:W = 7:3 のときのIOPSTとして、その時の平均レイテンシをL msec)とする。

Ready IOPS 0.7*T)のレイテンシをx (msec)とする
Write IOPS0.3*T)のレイテンシをy (msec)とする

 
ここで、Read IOPSWrite IOPS3倍の性能があると仮定する
レイテンシとIOPSは逆数の関係にあるため、y = 3x とする

xyの関係式を多少強引にでも用意しないとxyについての二元一次方程式が解けません。Read IOPSWrite IOPSの何倍で見積もるのが妥当かについては、ベンダーやストレージ有識者の意見をご参照ください。

xyの関係式を多少強引にでも用意しないとxyについての二元一次方程式が解けません。Read IOPSWrite IOPSの何倍で見積もるのが妥当かについては、ベンダーやストレージ有識者の意見をご参照ください。

 
また、IOPSと遅延の関係から以下の式となる

0.7Tx + 0.3Ty = TL

 
y = 3x を代入する
0.7Tx + 0.9Tx = TL
16x = 10L
x = 10L/16
y = 30L/16
 
R:W = 6:4 となる場合の平均レイテンシを求める

0.6 * 10L/16 + 0.4 * 30L/16 = 1.125L

つまり、R:W=7:3 R:W=6:4では、後者の平均レイテンシが1.125倍になる。
レイテンシとIOPSは逆数の関係にあるため、もとのIOPS7:3)であるT1.125で割るとIOPS(6:4)のときの概算のIOPSを算出できる。
もしくは、IOPS性能要件(6:4)を1.125倍したときの値でIOPS(7:3)のグラフを参照すればよい。
 
以上

コメント

このブログの人気の投稿

vSwitchにSTPが不要な理由

NTPと同期してくれないときのトラブルシューティング

ESXi に DNS サーバを何個まで登録できるか