コンピュータ: 2008年9月アーカイブ
最近管理しているシステムで、DBのストレージがシステムボトルネックになっています。
大体、一日1~5億トランザクション、インサートが5000万行くらい発生するので、主にストレージのランダム書込がボトルネックになっている様子です。
現在はRAIDも使わず単純にHDDを単体でぶら下げているだけなので、200IOPS(IO per Second)程度しかありません。DBのInsertやUpdateはランダム書込なので、IOPSが低いと使い物になりません。
IOPSをあげるための選択肢は3つあります。
- より高速なHDD使い、かつ多重化(RAID)を組む
- 半導体ディスク(DRAM)を利用する
- 半導体ディスク(FLASH)を利用する
それぞれ、メリットデメリットがあります。
| メディア | IOPS | G当たり価格 | 信頼性 |
| HDD RAID | 1,000 IOPS | 1000円 | 高い |
| DRAM SSD | 2~400,000 IOPS | 10万円 | 高い |
| Flash SSD RAID | Read 100,000 Write 10,000 | 3~5000円 | 低い |
選択肢1ですが、SATA HDD 1500回転の製品を使って、5~8台程度のRAIDを組んでもさほどIOPSは向上しません。(RAIDコントローラがバッテリー持っていて、Writeもキャッシュするようなストレージシステムは対象外です)
DRAM SSDは、高性能なんですが、さすがに高すぎます。いくら、1000倍の性能でても、お値段も1000倍です。また、上限サイズも限られ上位製品でも64~128GByteです。テラ単位のストレージを調達するのは現状ではかなり難しくなります。
そこで、Flash SSDでRAIDを組むという選択肢なのですが、昨年くらいまではランダム書込の性能がSATAと比べて優位性があまりなく、選択外だったのですが、ここにきて一気に性能があがってきました。
インテルの新製品X-25EですとRandom 4KB Writesで最大3,300 IOPSというスペックになっています。既存のHDDの15倍です。
これをみるとランダム書込で38MByteでています。9,500IOPSです。HDDのRAIDと比べて一桁良いパフォーマンスをだしています。(まあ、実際にはRAID1+0でくむ必要があるので、もう少し性能おちるでしょうが・・・) 価格性能比でみると前者2つの選択肢を圧倒します。
Flash SSDが書き込み回数寿命が短いだけでなく、過渡期の技術なので実績がほとんどありません。また、SSDを12~16台くらいつんだeSATAのエンクロージャーなど製品としてでてないので、自分で組まないといけません。となると、信頼性にどうしても疑問が残ります。
あと1年くらいすれば、環境もこなれてきてサーバストレージにFlash SSDを導入する選択も自然になると予測しますが、今年度はFlash SSDのサーバへの導入は控えるべきです。
システムの本格的なリプレイスが計画にあり、それまでのつなぎにどうしてもストレージ性能を2~5倍にする必要がある場合に限り、延命のためのシステム投資としてFlash SSD RAIDを1年だけ使うというのはありかとおもいます。
