株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

発想の転換:世界で最も早いストレージを作る! その2

前回の記事ではメモリのレイテンシでI/Oでき、しかも耐障害性のあるストレージ環境を作るという話をしてきました。今回はその第2弾です。

メモリのスピードでI/O出来るプラットフォーム

今回作ったプラットフォームを評価していきます。今回は以下の様な構成でテストを実施しています。

サーバ環境
ストレージ環境
見ていただいて分かる通りサーバのスペックはftServerではあるものの、2.5Ghz/10コアx2ソケット/メモリ128GBと普通のスペックです。また、ストレージについては2世代前のもので、更にSATAを5本RAID5で構成したもので、まったくもって早いと呼べるものではありません。
この上に、MS SQLサーバを仮想マシンとして構成しました。PernixDataの管理サーバやvCenterなども同居させている状態です。

Fig336

仮想マシンについては以下の構成ですが、CPUの構成を変えながら幾つかテストをしています。

今回はOLTP(オンライントランザクション処理)の負荷をかけて見ることにします。OLTPはその名の通り、オンラインショッピングなどを行った際の負荷をデータベースにかける処理です。オンラインショッピングで、いつまでもウェブページが表示されなかったら?ユーザーはショッピングをやめて、別のショッピングサイトに移動してしまうでしょう。銀行ATMのバックエンドのデータベースや、証券会社のシステムのフロントエンドも同様な負荷になると言われています。

この処理はストレージから見ると小さなスループットの処理が同時に大量に発生します。ユーザーが「遅い」と感じないようにこれを処理するために必要なのは「レイテンシ」です。このレイテンシが悪い状態のストレージで処理を行うと、ストレージからちっともデータが来ないため、CPUで処理ができず、ユーザーは画面の前でほったらかしになります。

さて、結果を見ていきましょう。

同時接続500ユーザーのOLTPでのレイテンシ

Fig337_2

グラフの見方をご紹介致します。この画面はPernixData FVPのパフォーマンス画面で、のラインで仮想マシンから観測されたレイテンシ紫のラインデータストアのレイテンシを表示しています。

見ていただいてお分かりのとおり、紫のデータストアのレイテンシは271.307msになっており、すでにこの状態でストレージの処理負荷は一杯になっていることがわかります。しかし、気をつけてみていただきたいのは青のライン、つまり実際に仮想マシンが感じているレイテンシです。0.074ms=74μsという強烈な低遅延が実現されています。

もしもPernixDataとftServerのコンビネーションがなかったとすると271ms=0.27秒の遅延が発生しているので、ユーザーはすぐに「このサイトは壊れているか、何かで応答しない」と判断してショッピングをやめてしまったでしょう。ですが、高速化のおかげで数十マイクロ秒でデータが応答をしているため、さくさくとショッピングを進められただろうと推測できます。

アプリケーションとしての性能の向上

ベンチマークソフトから取得したアプリケーションとしての遅延時間を見てみましょう。これはユーザーがアクセスしてから、実際にページが表示されるまでにかかった時間に相当します。

Fig338_4

比較としてPernixDataをOffにした場合とOnにした場合の処理を並べています。同型色で色が薄いほうがPernixDataを利用した場合の性能を表示しています。また、Read/Writeの発生の割合を変えて処理を行っています。いずれの場合もOnの場合でレイテンシが低減、つまりウェブページの表示(Read)やオーダー処理(Write)にかかる時間が短縮されていることがわかります。

特にWriteの割合が大きい場合の性能向上が大きいのはReadのレイテンシはキャッシュヒット率に依存してしまうのに対し、Writeは100%の書き込みをメモリで受けることができるからです。

この環境は世界最速なのか?

そうです、今回はこれを示す必要があります。ですので、オールフラッシュストレージを用意して比較しました。同じサーバを使いTPS計測(一秒間に何トランザクション処理が可能かの限界値を調べる調査)を行っています。上の例のRead:Write = 9:1のパターンでの比較です。今回のグラフは今までのグラフと違い、低いほうが早いのではなく、アプリケーションとしての性能は高いほうが早いことになります。

Fig339同じCPU/メモリの構成でSATA 720rpm 5本のRAID5構成のストレージ(PernixData+ftServerのRAMで高速化)とオールフラッシュストレージ(高速化なし)を並べたものですが、およそ10%程ではあるものの、オールフラッシュストレージでの性能を凌駕することができました。

これはストレージ自体の価格の差を考えれば素晴らしい結果です。個人的にはメモリとフラッシュの速度差を考えればもっと差がつくかもしれないと思っていたのですが、ソフトウェアのオーバヘッドやキャッシュのヒット率(アプリケーション特性)などもあり、今回はこのような結果となりました。Writeの割合を増やすともう少し向上が見込めそうですが、Readと違いWriteはすべてのI/Oをストレージに書き込まなくてはいけませんのである程度バックエンドのストレージにも性能が必要になってきます。

忘れてはいけないPernixDataの特徴ースケールアウトー

いかがでしたでしょうか?2回にわたって世界で最も早いストレージを作る!という目的に向かって邁進してきました。結果としてはOLTP処理という条件付きにはなりますが、オールフラッシュストレージを上回る性能をマークすることができました。もう一つ付け加えるのであれば、今回の性能はftServerが1台の時の性能だということです。オールフラッシュストレージはサーバが増えてもその性能が上がっていくことはありませんが、PernixDataはサーバを増やすことで更に性能を上げていくことが可能です。PernixDataを搭載したftServerを2台、3台・・・と増やしていくとこの差はもっと大きなものになってくるでしょう。

Fig340このようなスケールアウトについての検証は将来また実施できた際に掲載していきたいと思っています。

最後に

今回の検証には日本ストラタステクノロジー様に多大なるご協力を賜りました。この場を借りて、厚くお礼申し上げます。

記事担当者: マーケティング本部 三好哲生 (@pernixdata_netw)