PostgreSQL 8.1.1

  • いつもと違うところにあるファイルサーバを再構築したついでに、ベンチマークを試みてみる。

Server Spec

  いつもの奴 今回の奴
CPU Celeron 333MHz PentiumIII 1.08GHz
RAM PC100 192MB PC133 384MB
HDD 40GB UDMA33 4200rpm 8MB 20GB UDMA100 5400rpm 8MB
OS FreeBSD 4.11-STABLE 同左
PostgreSQL 8.1.0 8.1.1

今回の奴のベンチマーク結果

  • 測定条件、スクリプトはできるだけ同じにしました。
  • 上のグラフがその結果ですが、どの設定にしても余り変わらないみたいだ。
  • 強いて言うなら、全部設定した奴がClient == 4のあたりでちょっとだけぬきんでてるかなという程度。まあ、測定誤差ですね。
クライアント数 1 2 4 8 16 32 64
デフォルト 132.2 124.3 119.1 102.7 103.0 91.6 73.4
共有バッファ 128.5 131.7 118.3 109.1 100.2 88.3 75.0
トランザクションログバッファ 125.5 115.7 121.6 109.5 98.7 88.8 74.3
ライタープロセス 112.2 117.3 114.9 110.2 99.9 88.0 74.5
チェックポイントセグメント数 128.0 119.9 115.2 110.7 97.9 87.1 74.7

比較

  • スペックからして比較対象にならないだろうと思いつつも、いつもの奴と今回のやつを比較してみた。下のグラフがそれですが、意外と勝負になるものだなあとびっくりです。
  • どちらも最速となる設定(全部設定)の数値を比較したものですが、サーバスペックの違いから想像されるほどの差は出ないんだなあ。速いと言っても、せいぜい二倍程度なので、ちょっと肩すかしを食らった感じです。
  • 実行中にtopで負荷を眺めつつ思ったのは、いつものやつはClient=16あたりから必ずスワップしてたのが、今回の奴ではそれがなかったこと。CPUが速く、各プロセスの処理が高速に終了するので、スワップする以前に全体の処理が終わっている感じだろうか。
  • 後、どちらのケースでもメモリが不十分なんだろうなあ。今回の奴に1GB以上積んで、共有バッファを潤沢に確保したら、もっと違う結果になりそうな気がします。
クライアント数 1 2 4 8 16 32 64
いつもの奴で最も高速なパターン 61.5 57.8 60.2 57.7 51.0 29.1 23.3
今回の奴で最も高速なパターン 128.0 119.9 115.2 110.7 97.9 87.1 74.7
  • アップグレードごとに比較してみると面白いので、今後ともシリーズ化してみようと思います。:-)