HDDをSSDにしたらデータベースはどれだけ速くなるか? オラクルと富士通が実験

2010年4月26日

リレーショナルデータベースを利用する際には、高い性能を引き出すために物理設計をし、スキーマを工夫し、パラメータのチューニングを行うことがつねに行われてきました。

性能のボトルネックはたいがいHDDにあり、いかにそのボトルネックを回避するかがチューニングのポイントですが、最近では性能向上のための武器として、HDDよりもずっとアクセス性能の高いSSDが注目されています。SSDはHDDと置き換えるだけで、アプリケーションにまったく手を加えずに性能向上を可能にする手段として非常に魅力的です。

HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました(参考「日本オラクルと富士通 フラッシュ技術活用によるデータベース高速化を共同検証」)。

ホワイトペーパーでは、HDDの代わりにSSDを用いた場合、OLTP処理ではリレーショナルデータベースの性能が約2.4倍程度向上したとの結論が得られています。その内容を紹介しましょう。

ディスク自体の性能は約10倍から20倍違う

検証を行ったシステム構成は次のようなものでした。

2台のサーバは1000Base-Tのインターコネクトで接続。ストレージとは8GbpsのファイバーチャネルによるSANで接続されています。このサーバに対して、これにベンチマーク用のシミュレーションを行うクライアントマシンがLANで接続されています。

fig

ポイントは、エンタープライズ用途を想定してリレーショナルデータベースが利用され、サーバがクラスタ構成であり、そしてストレージがSANで接続されているところでしょう。つまり、1台のサーバにDASでSATA、といったよくある構成でのベンチマークではない、というところです。

まずは単純にHDDとSSDの性能比較が行われています。ブロックサイズを2KBから32KBに変えつつそれぞれのランダム読み込み性能を比較したグラフ。8KBのブロックサイズでは、SSDはRAID1においてHDDの約14倍、RAID5では約9倍の性能と説明されています。

fig

ランダム書き込み性能では、8KBのブロックサイズでSSDがRAID1において21倍、RAID5では9倍の性能。

fig

SSDでは先にCPUがボトルネックに

続いて、OLTP処理での性能検証です。商品検索の後に購入する、という処理(TX1)と、商品検索のみの処理(TX2)の2つを2対8の割合で混在させ、大量に発生させるという方法でベンチマークをとっています。

その結果を見てみると、300スレッド時にSSDがHDDに対して約2倍の性能を発揮していることが分かります。

fig

HDDは200スレッドで性能が頭打ちなのに対し、SSDは200スレッドから300スレッドになってもまだ性能は上昇。ただし、300スレッド時にはCPU利用率が100%に近づいており、先にCPU性能の方がボトルネックとなってしまったようです。

よくアクセスされる部分だけをSSDに載せてみる

データベースのすべてをSSDに載せ替えられるのなら話は簡単ですが、現実にはエンタープライズ向けのSSDストレージの価格はいまのところ非常に高価であり、予算的に簡単にできる話ではありません。

最後のベンチマークではOracle 11g R2に対して、データベースのアクセスの多い部分だけを自動的にSSDへと移動してくれる「Database Smart Flash Cache」機能を試しています。

システム構成として、2ノードあるデータベースサーバそれぞれに90GBのSSDを割り当てています。この状態でベンチマークをとったのが以下のグラフ。

fig

クライアントからの検索範囲が9GB(データベースのデータ量として)に収まるときには、全部がメモリのバッファキャッシュに載るためにHDD、SSDのどちらでも性能に違いはありません。その後検索対象が90GBまではSSDの性能は非常に伸びていきます。最大でHDDと2.4倍の性能の違いがあったことが示されています。

2倍~3倍程度の性能向上をどう見るか?

このホワイトペーパーでは、SSDに全部載せ替えた場合とDatabase Smart Flash Cacheを使った場合では、後者のベンチマークの方が2.4倍と大きな数値を示していますが、両者の環境は違いますので、Smart Flash Cacheの方が性能向上の効果が大きいとはいえません(このホワイトペーパーの目的が同製品の性能を示すことにあり、わざと数値のよい見せ方をしたのかもしれません)。

SSDに全部載せ替えたベンチマークではCPU性能がボトルネックになって2倍にとどまってしまったわけで、理屈からいってもSmart Flash Cacheを使うより、全部SSDに載せ替えてしまった方がより大きな性能を示すはずです(できれば同じベンチマーク方法で比較してほしかったですね)。

いずれにせよ、こうしたベンチマークが公開され、導入を検討している顧客にとって対投資効果の判断材料が提供されるのはよいことです。

とはいえ、HDDとSSDそのもののアクセス性能を比較した場合は10倍から20倍性能が違うのに対し、実際の業務を想定したOLTP処理性能の比較ではそれが2倍~3倍程度に収まりそうであるのにはやや肩すかしを食らった感じもします。

結果を見るかぎり、SSDに対して過大な期待をせずに導入を検討すべき、というのが現実のようです。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Oracle , SSD , リレーショナルデータベース



≫次の記事
HTML5/JavaScriptの遊べるゲームライブラリ「Akihabara」、iPhone/Androidにも対応
≪前の記事
グーグルがHadoopにMapReduce特許の利用を許可

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus