このエントリーをはてなブックマークに追加このエントリをつぶやく

MySQLをHDD/RAID0/SSD/RAMDISKの上で走らせてみる(その1)

■■■■■ ベンチマーク概要 ■■■■■
どもども井上です。
なぜかデータベースをがりがり走らせる案件がよく回ってくるんです。それも何時間もDB問い合わせしっぱなし的なやつが。当然DBのチューニングを行うわけですが、それも限界になると最後は物理デバイスの変更を検討することになります。そこで今回は、データベースをシングルのHDD、RAID1構成のHDD、SSD、RAMDISKの上に置くことで、どれくらい速度が変わるのか、ベンチマークをとってみたいと思います!ちなみに僕のメインマシン+周りに落ちてたパーツ使ってやる貧乏テストなので、そんなに厳密にやるわけじゃないよ。OK?

■データベースおよびベンチマークについて
ベンチマークに使うDBは最近使用頻度の高いMySQLに決定。そしてデータベースのベンチマークですが、DBベンチとして有名なTPC-CのMySQLの簡易実装版ともいえるPercona社が作成したMySQL-TPCCを使用することにします。TPC-Cとは業界団体TPCが制定したデータベースの指標で、卸売業者を対象とした注文から発送までの流れをシミュレートすることで、1分間に何回注文できるかを計測するものになっています。とうぜん注文が入れば注文テーブルが増加し、発送が行われると新規注文テーブルが削除されます。そのほかにも複数のトランザクションやロールバックなどを絡めてテストを行うことで、実際の業務に近い内容が定義されています。下記は仕様書の11ページ目「Database Entities, Relationships, and Characteristics」から引用したER図にコメントを加えたものです。なんとなく、ベンチマークで何をするのかがわかると思います。

TPCCのER図

ベンチマークの規模は倉庫の数を指定することで変更できます。倉庫の数を1個に指定してテストをすれば、顧客が3万、注文明細数が30万のテストになりますし、10個にしてテストすれば顧客30万、注文明細数が300万のテストになります。倉庫を一つ増やすたびに、90Mバイト強innodbのデータファイルのサイズが増加します。

■テスト環境
テスト環境ですが、以下の2台のPCを使います。サーバよりクライアントのほうがスペックがよいような気がしますが、気にしない!この二つのPCだけでCPUのコアが10個です。すごい時代ですね・・・

データベースサーバ
OS: Windows7 Ultimate(64bit)
CPU: Intel Core2Quad Q9650(3GHz)
メモリ: DDR2(800) 8Gバイト(うち4GをRAMDISKに割当)
HDD: SAMSUNG HD 103SI(1Tバイト・5400回転) x 2台
SSD: INTEL X25-M(80Gバイト・MLC)
   crucial RealSSD C300(250Gバイト・MLC)

ベンチマーククライアント
OS: CentOS5.5(64bit)
CPU: AMD Phoenom II x6 T1100(3.3GHz)
メモリ: DDR3(1200) 8Gバイト
HDD: HDS722020ALA330 (2Tバイト・5400回転)

その2:ストレージベンチマーク編

Jotaro Inoue の紹介

代表取締役社長
カテゴリー: プログラミング   パーマリンク

コメントは受け付けていません。