春のDBベンチマーク祭り

みなさんこんにちは!アイスタイル DBAのsugatです。

GW、終わっちゃいましたねぇ…。
終わっちゃいました、ねぇ…(遠い目

…。

リフレッシュしたことですし、お仕事ガンバリましょう!

今回は、春のDBベンチマーク祭り と勝手に称して、
GWにやったこと の発表です。

ふと、気になりました。

OSSのDBのベンチマークを比較した記事って、古いのが多かったり、
めちゃくちゃ高いスペックのサーバーでスコア取ったものが多くって、
もうちょっと中堅どころと言うか、汎用的に扱うサーバースペックでの
ベンチマークの結果が見てみたいな、と。

実行環境

今回使用するマシンはご家庭で用意できるPCをホストにしてVMを立て、
そのVMに各OSS DBをインストールして、ベンチマークを取得しました。

○ホストマシンのスペックはこちら
・CPU:Core i7-7700K 4.20GHz(8CPUs)
・メモリ:ddr4-2400 32GB
・SSD:WDC WDS500G2B0A
・GPU:GeForce GTX 1070 ←(?)

○VMのスペックはこちら
・CPU:4core
・メモリ:8GB
・SSD:64GB

○各RDBのバージョン
・PostgreSQL 10.3
・MySQL 5.7.22
・MariaDB 10.2.14

レギュレーション

今回定めたレギュレーションは以下の通りです

  • ベンチマークにはHammerDBを使用する
  • 取得するベンチマークはtpc-cを採用する
  • HammerDB実行時に起動するVMは1つのみとし、他のアプリケーションは一切動かさない
  • 各DBで変更するパラメータはメモリ関連のもののみ

HammerDBを使用したtpc-c実行環境の構築

こちらを参考に、
tpc-cベンチマーク取得用の環境を構築しました。

  • Number of Warehousesは40(CPUコア数×10)
  • Virtual Users to Build Schemaは8(CPUコア数×2)

実行するDriverScriptのオプションは以下の通りです。

  • 「Timed Test Driver Script」にチェック
  • Minutes of Rampup Timeを5に
  • Minutes for Test Durationを20に
  • Use All Warehousesにチェック

結果、こうなりました。

第1位 MariaDB( 1,941,578 tpm )

第2位 MySQL( 1,390,268 tpm )

第3位 PostgreSQL( 38,097 tpm )

まとめ

この検証結果を受けて、一番最初に感じたことは、
なんか思ってたんと違う! でした。
MySQLよりもMariaDBの方がオプティマイザが優秀という話は聞いていたので、
そこの比較については納得いくものでしたが、
PostgreSQL!キミはもっと頑張れるハズだよ!
ということで、もうちょっと検証が必要そうです。
(これでも頑張ったんですよ?最初5,000tpm割ったりして泣きそうでした…)

まだ、今回の検証ではTPC-C(いわゆるOLTP系のベンチマーク)しか取っていないので、
今度はTPC-H(DWH系のベンチマーク)にも挑戦したいと思います!

アイスタイルでDBAやってます。最近やっと一端のDBA名乗る事はできるようになったかなーというレベルです。 MS SQLServer / MariaDB / PostgreSQL が好き。