みなさんこんにちは!アイスタイル 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系のベンチマーク)にも挑戦したいと思います!