フラッシュストレージioDriveの性能と信頼性
2014年2月19日(水)
低レイテンシ性能がもたらすものとは
ストレージの性能比較項目として一般的なのはIOPSと帯域ですが、SSDの登場によりレイテンシが注目されるようになりました。HDDの場合はどのモデルも回転数やシークタイムはそれほど差違がなく、結果的にレイテンシも差違がないため、比較項目としてはあまり注目されてこなかったのだと思います。
ここでは初心に振り返って改めてレイテンシがなぜ重要なのか紹介したいと思います。今後の機器選定の際の基準として注目いただければと思います。
情報処理技術者試験でおなじみの待ち行列理論で学ぶリトルの法則で考えると非常にイメージがしやすいです。リトルの法則では、例えばお店の前にできる行列の長さは、
L(行列の長さ)= λ(単位時間あたりのお客の到着率) × W(平均滞在時間)
で表されました。
ストレージの世界に置き換えると、Lはキューデプス(ストレージが一度に受け取れるIOリクエスト数 )、λはIOPS(単位時間あたりのIO数)、Wはレイテンシになります。IOPSの式に直すと
IOPS = キューデプス ÷ レイテンシ
となります。
つまり、IOPS性能をあげるためにはキューデプスを増加させる方法と、レイテンシを短くする2通りの方法があることがわかります。これまではHDDを大量に用意してこのキューデプスを増加させることでIOPS性能を確保してきました。
しかし、この方法には限界があります。いくらキューデプスを増加させてもキューを全て満たせるような大量のIOが発行できなければ、IOPSは上がらないのです。OLTPのようなトランザクション処理では一度に発行できるIOが限られることが多々あります。厳密に在庫管理しているオンラインショッピングサイトを想像してみてください。 注文が来た場合、在庫を確認して注文数に応じて在庫を引き当てる(アップデートする)必要があります。このアップデート自体はたいしたIOではないですが、この処理が終わらない限り、注文は完了しません。少量のIOでも素早く処理する必要があるのです。同一の商品に注文が殺到するとさらに問題が顕著になります。排他制御がかかり、引き当て処理は並列ではなく逐次的に処理されてしまいます。
このようにビジネスロジックによっては一度に大量のIOを発行できないケースがあり、効率よくキューを満たせるかどうかは、アプリケーション依存の部分があります。
そこで、レイテンシを低くするアプローチが注目されています。レイテンシを低くできれば、キューデプスの状況に関わらずIOPS性能を稼ぐことができます。
いわゆる一般のディスクベンチマークでは、とにかくIOを大量に発行して単位時間あたりにどれくらいIOを処理できるか測定をしますが、このようなベンチマークは簡単にキューを満たしてしまいます。そのため、ベンチマーク結果はいいのに実環境では速度はあまり向上しない、ベンチマーク結果ではそこまで差がないのに実環境ではなぜか差が出てしまう、といったケースが出てきます。ioDriveを評価される場合は、単純なベンチマークではなく実環境を想定したワークロードでの評価をお願いします。
次回は、ioDriveを活用してアプリケーションの高速化とコスト削減を両立させる方法を紹介します。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。