PostgreSQL
PostgreSQL9.4
PostgreSQL9.5

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

More than 3 years have 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発生も考慮しましょう。

以上、ご参考まで。