俺的PostgreSQL9系postgresql.confチューニング

  • 11
    Like
  • 0
    Comment
More than 1 year has passed since last update.

PostgreSQL9系の設定要所について自分が思う所をまとめてみました

1.チェックポイント周り設定

checkpoint_completion_target 0.8
checkpoint_segments      6    ※ 但し9.4まで。9.5からこのパラメータは廃止。
checkpoint_timeout       30min

※更新メインなら「checkpoint_completion_target」は1に限り無く近くても可能(但しサーバ負荷は増大)

2.接続設定系

listen_addresses     '*'
port            {デフォルト以外のポート指定}

3.ログ周り設定

log_destination           stderr
log_directory            /var/log/pg_log/
log_filename            postgresql-%d.log
log_line_prefix            [%m][%p][%u][%d][%h][%e]
log_rotation_age            1d
log_truncate_on_rotation      on

※ログを「/var/log/pg_log/」に切り出す場合mkdirとchownは適切に設定して下さい。

4.SSD用設定
→物理サーバ上での設定の場合以下のパラメータで性能が上る可能性があります。

random_page_cost     4.0

5.メモリ周り設定

effective_cache_size                メモリ総量の1/4
maintenance_work_mem                メモリ総量の1/256
shared_buffers                      メモリ総量の1/4
temp_buffers                        メモリ総量の1/128
wal_buffers                         メモリ総量の1/512
work_mem                            メモリ総量の1/2048

但し、メモリ領域の確保する総量に関しては同一サーバ内にApache等が構成されている場合、領域を食い尽くす事によるSWAP発生も考慮しましょう。

以上、ご参考まで。