おっちゃんのエンジニア日記

今までエンジニアとして経験してきたことを書いていくブログ

春のDBベンチマーク祭り - TPC-C編 - (2020年版)

みなさんこんにちは!

ご無沙汰してます

約2年前、春のDBベンチマーク祭りと称してMariaDBMySQLPostgreSQLそれぞれの
TPC-C(OLTP)、TPC-H(DWH)のベンチマークを取得して比較したものを載せました。

今は新型コロナの影響で自宅にいる時間も多いので、この時間を利用してデータベースの検証を再開したいと思い、
また検証のブログを書きました。

実行環境

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

〇ホストマシンのスペックはこちら

VMのスペックはこちら

  • CPU:4core
  • メモリ:8GB
  • SSD:64GB

○各RDBのバージョン

レギュレーション

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

  • ベンチマークには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位 PostgreSQL 11.7( 66,396 tpm )

f:id:tetsuwrx:20200411211302p:plain
PostgreSQL( 66,396 tpm )

第2位 MariaDB 10.4.12( 19,080 tpm )

f:id:tetsuwrx:20200411211104p:plain
MariaDB( 19,080 tpm )

第3位 MySQL 8.0.19( 12,810 tpm )

f:id:tetsuwrx:20200411211436p:plain
MySQL( 12,810 tpm )

まとめ

今回はPostgreSQLのスコアがダブルスコア以上で上回りました。前回の測定ではとてもその性能を引き出せかったのか、あまり良い数字ではなかったですが、今回は抜群の性能を叩き出しました。
設定したことはメモリに関するチューニングのみ。これだけでここまでの性能を引き出せるとは驚きです。
また、前回と今回では検証したベースの環境が大きく変わっているので、そこも影響があるのかもしれません。
次はTPC-H…とも思いましたが、それぞれのDBに最適なOSってあるのだろうか?というのが気になってきたので、そちらの検証をしてみようと思います。

今は新型コロナの影響で悲しい話や目をそむけたくなる情報ばかりが飛び交っている状況で、僕自身も精神的に参りそうな時期もありました。
でも、こういう時間を有効に活用して、エンジニアとしてのスキルアップを図ったり、エンジニアさん同士のコミュニケーションを活発にして気分転換できたらいいなと思います。
皆でこの状況を乗り越えていきましょう!