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発生も考慮しましょう。
以上、ご参考まで。