はじめに
先日、pgAdmin4を試すために久々にWindows版PostgreSQL 9.6 beta3をWindows 8.1上にインストールしてみました。
そこで発生した問題は別途整理しようと思っているのですが、それとは別に、なんとなくWindows版PostgreSQL 9.6 beta3と、Windows上のVM環境(CentOS7)にインストールしている、PostgreSQL 9.6 beta3をpgbenchで比較してみようかなと思った。
測定環境/測定内容
- マシン:Let's note CF-SX4 SSDモデル
- メモリ8GB(VMには5GB割当)
- PostgreSQL 9.6 beta3
- pgbenchは同梱のものをそれぞれ使用
- PostgreSQLパラメータは(面倒だったので)デフォルト
- pgbench初期設定
- スケールファクタは10
- テーブルは通常(UNLOGGEDでないもの)
- fillfactorは90
- pgbench実行設定
- 同時実行数は1,2,4の3パターン
- 参照のみモード、デフォルトトランザクションの2パターン
- 実行時間は60秒
- 3回測定して平均値をプロット
結果
ちょっと意外な結果?
参照のみ
- 同時実行数が小さいときはVM on Linuxのほうがtpsが高いが、同時実行数4になるとほぼ同値。
- VM Linux上だとCPU数(=2)を超えるとほぼ横ばいに。
- CPUの使われ方が違うのかしらん。
デフォルトトランザクション
- 更新ありの場合だと、Windows版のほうがどの同時実行数でもtpsが高い結果になっている。
- VM Linux上だとCPU数(=2)を超えるとほぼ横ばいになるのは、参照のみと同じ傾向。
- 更新ありの場合でもWindows版は同時実行数が2を超えても上昇傾向にあり。
おわりに
今回は、何も考えずとりあえず測定してみたけど、ちょっと意外な結果が出たので、きちんと分析したほうが良いのかな?
Windows版ってとにかく遅いというイメージがあったのだけど、実はそうでもないのか。
あるいは、測定環境がSSD環境だからというのがあるのか。