前回の記事ではメモリのレイテンシでI/Oでき、しかも耐障害性のあるストレージ環境を作るという話をしてきました。今回はその第2弾です。
メモリのスピードでI/O出来るプラットフォーム
今回作ったプラットフォームを評価していきます。今回は以下の様な構成でテストを実施しています。
サーバ環境
- ftServer 6410 128GB Memory
- VMware ESX 5.5 update2
- vCenter 5.5 Applicance
ストレージ環境
- ftScalable Storage G1
- 4Gbps FC
- 500GB SATA 7.2krpm × 5 Raid5
- OS :Windows Server 2008 R2
- 1socket 6core
- 1socket 10core
- 2socket 10core
- ワークロード : SQL Server 2014
- 負荷テストツール : Transaction Generator
今回はOLTP(オンライントランザクション処理)の負荷をかけて見ることにします。OLTPはその名の通り、オンラインショッピングなどを行った際の負荷をデータベースにかける処理です。オンラインショッピングで、いつまでもウェブページが表示されなかったら?ユーザーはショッピングをやめて、別のショッピングサイトに移動してしまうでしょう。銀行ATMのバックエンドのデータベースや、証券会社のシステムのフロントエンドも同様な負荷になると言われています。
この処理はストレージから見ると小さなスループットの処理が同時に大量に発生します。ユーザーが「遅い」と感じないようにこれを処理するために必要なのは「レイテンシ」です。このレイテンシが悪い状態のストレージで処理を行うと、ストレージからちっともデータが来ないため、CPUで処理ができず、ユーザーは画面の前でほったらかしになります。
さて、結果を見ていきましょう。
同時接続500ユーザーのOLTPでのレイテンシ
グラフの見方をご紹介致します。この画面はPernixData FVPのパフォーマンス画面で、青のラインで仮想マシンから観測されたレイテンシ、紫のラインでデータストアのレイテンシを表示しています。
見ていただいてお分かりのとおり、紫のデータストアのレイテンシは271.307msになっており、すでにこの状態でストレージの処理負荷は一杯になっていることがわかります。しかし、気をつけてみていただきたいのは青のライン、つまり実際に仮想マシンが感じているレイテンシです。0.074ms=74μsという強烈な低遅延が実現されています。
もしもPernixDataとftServerのコンビネーションがなかったとすると271ms=0.27秒の遅延が発生しているので、ユーザーはすぐに「このサイトは壊れているか、何かで応答しない」と判断してショッピングをやめてしまったでしょう。ですが、高速化のおかげで数十マイクロ秒でデータが応答をしているため、さくさくとショッピングを進められただろうと推測できます。
アプリケーションとしての性能の向上
ベンチマークソフトから取得したアプリケーションとしての遅延時間を見てみましょう。これはユーザーがアクセスしてから、実際にページが表示されるまでにかかった時間に相当します。
比較としてPernixDataをOffにした場合とOnにした場合の処理を並べています。同型色で色が薄いほうがPernixDataを利用した場合の性能を表示しています。また、Read/Writeの発生の割合を変えて処理を行っています。いずれの場合もOnの場合でレイテンシが低減、つまりウェブページの表示(Read)やオーダー処理(Write)にかかる時間が短縮されていることがわかります。
特にWriteの割合が大きい場合の性能向上が大きいのはReadのレイテンシはキャッシュヒット率に依存してしまうのに対し、Writeは100%の書き込みをメモリで受けることができるからです。
この環境は世界最速なのか?
そうです、今回はこれを示す必要があります。ですので、オールフラッシュストレージを用意して比較しました。同じサーバを使いTPS計測(一秒間に何トランザクション処理が可能かの限界値を調べる調査)を行っています。上の例のRead:Write = 9:1のパターンでの比較です。今回のグラフは今までのグラフと違い、低いほうが早いのではなく、アプリケーションとしての性能は高いほうが早いことになります。
同じCPU/メモリの構成でSATA 720rpm 5本のRAID5構成のストレージ(PernixData+ftServerのRAMで高速化)とオールフラッシュストレージ(高速化なし)を並べたものですが、およそ10%程ではあるものの、オールフラッシュストレージでの性能を凌駕することができました。
これはストレージ自体の価格の差を考えれば素晴らしい結果です。個人的にはメモリとフラッシュの速度差を考えればもっと差がつくかもしれないと思っていたのですが、ソフトウェアのオーバヘッドやキャッシュのヒット率(アプリケーション特性)などもあり、今回はこのような結果となりました。Writeの割合を増やすともう少し向上が見込めそうですが、Readと違いWriteはすべてのI/Oをストレージに書き込まなくてはいけませんのである程度バックエンドのストレージにも性能が必要になってきます。
忘れてはいけないPernixDataの特徴ースケールアウトー
いかがでしたでしょうか?2回にわたって世界で最も早いストレージを作る!という目的に向かって邁進してきました。結果としてはOLTP処理という条件付きにはなりますが、オールフラッシュストレージを上回る性能をマークすることができました。もう一つ付け加えるのであれば、今回の性能はftServerが1台の時の性能だということです。オールフラッシュストレージはサーバが増えてもその性能が上がっていくことはありませんが、PernixDataはサーバを増やすことで更に性能を上げていくことが可能です。PernixDataを搭載したftServerを2台、3台・・・と増やしていくとこの差はもっと大きなものになってくるでしょう。
このようなスケールアウトについての検証は将来また実施できた際に掲載していきたいと思っています。
最後に
今回の検証には日本ストラタステクノロジー様に多大なるご協力を賜りました。この場を借りて、厚くお礼申し上げます。
記事担当者: マーケティング本部 三好哲生 (@pernixdata_netw)