PostgreSQL8.0.3チューニング実験

Overview

postgresql.confの変更点

  • shared_buffers
shared_buffers = 1500
  • wal-buffers
wal_buffers = 32
  • bgwriter
bgwriter_delay = 200
bgwriter_maxpages = 4
  • checkpoint_segments
checkpoint_segments = 16

結果

前回 (128MB)
Client 1 2 4 8 16 32 64
Default 31.8 38.3 34.8 35.0 34.4 26.0 19.1
shared_buffers = 1500 44.8 46.1 47.9 46.5 31.9 28.9 17.0
wal_buffers = 32 27.3 42.3 41.9 38.4 33.3 24.2 20.4
bgwriter_maxpages = 4 36.9 33.1 30.8 42.1 29.5 30.9 13.0
checkpoint_segments = 16 33.1 28.2 38.6 34.2 24.9 23.4 17.7
今回 (192MB)
Client 1 2 4 8 16 32 64
Default 51.1 56.1 56.0 52.6 44.1 21.6 19.1
shared_buffers = 1500 48.1 41.5 50.9 48.0 44.1 30.3 21.6
wal_buffers = 32 48.9 47.6 48.7 47.5 39.3 28.6 19.7
bgwriter_maxpages = 4 47.8 46.4 47.6 46.9 33.4 22.3 19.0
checkpoint_segments = 16 44.8 47.5 36.7 44.3 32.2 23.6 21.0

考察

  • メモリの搭載量が64MB増加した以外は全く同条件のはずですが、ベンチマークの結果は明らかに違っている。全体的にひとまわり高速化した感じですね。
  • 結果的にデフォルトの状態が最速だったのは面白いところですが、最初からそれなりにチューニングされた状態でリリースされているということかな。
  • 本当はKENRCONFのパラメータ調整からやり直したい気がするけど、とりあえずはこれで満足することにしましょう。:-)

あっ!

  • ふと気づいて前回の日記を見直したら、ベンチマークをやった後にArchive Logの設定をしていました。
  • 元々非力なシステムで動かしている以上、x_logをアーカイブする際のオーバーヘッドがもしかしたら無視できないのかもしれない。
  • Archive Log自体あまり有効なバックアップ法だと思えないところもあるので、週末に設定変更してからリベンジしてみよう。:-)