PostgreSQL 9.6 - 手元の環境でpgbenchった
手元の貧弱な環境でPostgreSQL 9.6 beta1とPostgreSQL 9.5のpgbench結果を比較してみた。
ついでに、今リリースされている、9.6 beta1 RPMに --enable-cassert ついてんじゃね?みたいな話を某所で聞いたので、--enable-cassert の有無によって、どのくらいpgbench結果に影響が出るのかも見てみることにした。
環境
- PC:Let's note SX4 (メモリ8GB)
- ホストOS:Windows 8.1
- ゲストOS:CentOS 7.0
PostgreSQL
- 以下、全てソースビルド版
- PostgreSQL 9.6 beta1 (--prefixのみ指定)
- PostgreSQL 9.6 beta1 (--prefixと--enable-cassertを指定
- PostgreSQL 9.5.2 (--prefixのみ指定)
pgbench設定
- 初期化時
- -s 10 --unlogged-table -F 90
- 実行時
- -c 2 -T 30
- これを3回連続測定して平均値をとる
結果
バージョン | 平均tps |
9.6 beta1 | 2757.322 |
9.6 beta1 cassertあり | 1845.260 |
9.5.2 | 3331.687 |
- おやあ・・・この環境だと明らかにPostgreSQL 9.6 beta1のほうがtpsが落ちている
- beta1なので、まだ性能改善の余地がたっぷりあるのか。
- コア数が少ない貧弱な環境だと、9.6のほうが不利になるのか。
- 当たり前だけど、 --enable-cassert を付与するとめっさ性能に影響でるのね。
- 一応、9.6のpgbenchのクエリの実行計画も見てみたけど、基本、IndexScanしかないので max_worker_degree がデフォルト値(2)であっても、別に実行計画が変わるわけじゃない。
- ただ、Planing Timeが9.5よりも、微妙に大きくなっているような・・・max_worker_degree = 0 にするとPlaning Timeが多少改善されたりするのかな?