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

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

DBベンチマーク祭り - TPC-C編 - (2022年 年始版)

みなさんこんにちは!

ご無沙汰してます

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

まだまだコロナで自宅に籠ることも多い最近ですが、PCの入れ替えを行った事もあり、またまた懲りずにベンチマークをとっていきたいと思います。

実行環境

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

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

VMのスペックはこちら

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

○各RDBのバージョン

レギュレーション

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

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

また、レギュレーションとは別に、今回はパフォーマンスチューニングを行いました。
Postgresqlは、PGTuneを参考にしました。
MySQLおよびMariaDBは、MySQLTunerを参考にしました。

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を2に
  • Minutes for Test Durationを5に
  • Use All Warehousesにチェック

結果、こうなりました

第1位 PostgreSQL 14.1( 242,839 tpm )

f:id:tetsuwrx:20220206224742p:plain
第1位 PostgreSQL 14.1( 242,839 tpm )

f:id:tetsuwrx:20220206224827p:plain

第2位 MariaDB 10.6.5( 126,278 tpm )

f:id:tetsuwrx:20220206224845p:plain
第2位 MariaDB 10.6.5( 126,278 tpm )

f:id:tetsuwrx:20220206224920p:plain

第3位 MySQL 8.0.27( 46,292 tpm )

f:id:tetsuwrx:20220206224937p:plain
第3位 MySQL 8.0.27 ( 46,292 tpm )

f:id:tetsuwrx:20220206225017p:plain

まとめ

今回も大差でPostgreSQLがトップでした。チューニングした結果とはいえ、VMのOSはCentOSからDebianへ変更しました。
ホストのマシンもスペックアップした結果、ここまでスコアを上げることができました。
MySQLだけはなぜか思うような結果にはなりませんでしたが…。
動作している印象では、CentOSよりはDebianの方が相性は良さそうな感触を受けました。
パフォーマンスチューニングも奥が深いので、これからも突き詰めていきたいと思います。

まだまだ新型コロナの感染は広がっていて油断はできない状況ですが、こうして家にいる時間を楽しむ方法はたくさんあります。
こういう時期を使って、スキルアップをしていきたいですね!
それでは!