春のDBベンチマーク祭り - TPC-C編 - (2020年版)
みなさんこんにちは!
ご無沙汰してます
約2年前、春のDBベンチマーク祭りと称してMariaDB、MySQL、PostgreSQLそれぞれの
TPC-C(OLTP)、TPC-H(DWH)のベンチマークを取得して比較したものを載せました。
今は新型コロナの影響で自宅にいる時間も多いので、この時間を利用してデータベースの検証を再開したいと思い、
また検証のブログを書きました。
実行環境
今回使用するマシンもご家庭で用意できるPCをホストにしてVMを立て、
そのVMに各OSS DBをインストールして、ベンチマークを取得しました。
〇ホストマシンのスペックはこちら
- CPU : AMD Ryzen 7 3700U 2.3GHz(4core/8thread)
- MEM : 16.0GB
- SSD : NVMe SSD 512GB(SAMSUNG MZVLB512HAJQ)
- GPU : AMD Radeon(TM) RX Vega 10 Graphics
○VMのスペックはこちら
- CPU:4core
- メモリ:8GB
- SSD:64GB
○各RDBのバージョン
- PostgreSQL 11.7
- MySQL 8.0.19
- MariaDB 10.4.12
レギュレーション
今回定めたレギュレーションは以下の通りです
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 )
第3位 MySQL 8.0.19( 12,810 tpm )
まとめ
今回はPostgreSQLのスコアがダブルスコア以上で上回りました。前回の測定ではとてもその性能を引き出せかったのか、あまり良い数字ではなかったですが、今回は抜群の性能を叩き出しました。
設定したことはメモリに関するチューニングのみ。これだけでここまでの性能を引き出せるとは驚きです。
また、前回と今回では検証したベースの環境が大きく変わっているので、そこも影響があるのかもしれません。
次はTPC-H…とも思いましたが、それぞれのDBに最適なOSってあるのだろうか?というのが気になってきたので、そちらの検証をしてみようと思います。
今は新型コロナの影響で悲しい話や目をそむけたくなる情報ばかりが飛び交っている状況で、僕自身も精神的に参りそうな時期もありました。
でも、こういう時間を有効に活用して、エンジニアとしてのスキルアップを図ったり、エンジニアさん同士のコミュニケーションを活発にして気分転換できたらいいなと思います。
皆でこの状況を乗り越えていきましょう!