ホーム DoRuby PostgreSQL 8.3 以降からの postgresql.conf を、サーバースペックによるデフォルト値を設定し、パフォーマンスチューニングする

PostgreSQL 8.3 以降からの postgresql.conf を、サーバースペックによるデフォルト値を設定し、パフォーマンスチューニングする

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、O2 です。

今回は、postgresql の設定ファイル(postgresql.conf) に関しての、私が最近設定している

デフォルト値を公開しようと思います。

実際、インストール直後の設定では、「ロースペックのマシン環境でも動作する」設定の為

最近のサーバースペックにあった、デフォルト値を記述してみようと思います。

とは言っても、私が扱っている最近のサーバーのメモリは、8GB、16GB、32GB で、さらに

PostgreSQL 8.3以降を使用しているので、PostgreSQL 8.3以降での、メモリ3パターンでの

デフォルト値を紹介します。

注意.あくまでも、私が割り出したデフォルト値ですので、どのように使用するかによってチューニングは

必要になりますので、参考にご使用ください。

説明の前に

 PostgreSQL 8.2 以降かな?(間違っていたらだれか指摘してね)、設定値関して

 shared_buffers などのメモリ設定が、MB(メガバイド)や、GB(ギガバイト)という単位で

 設定できるようになっている為、設定しやすくなっています。

共通

 max_connections = 200

  log_destination = ‘stderr’

  logging_collector = on

  log_directory = ‘/var/log/postgresql’

  log_filename = ‘postgresql-%Y-%m-%d.log’

  log_min_messages = info

  log_error_verbosity = verbose

  log_line_prefix = ‘%t:%r[%p-%v]’

  log_autovacuum_min_duration = 0

  autovacuum = on

  log_lock_waits = on   deadlock_timeout = 30s

メモリ:8GB の場合

  shared_buffers = 2GB

  work_mem = 32MB

  wal_buffers = 512KB

  checkpoint_segments = 16

  random_page_cost = 3.0

  effective_cache_size = 2GB

メモリ:16GB の場合

  shared_buffers = 3GB

  work_mem = 32MB

  wal_buffers = 512KB

  checkpoint_segments = 16

  random_page_cost = 3.0

  effective_cache_size = 3GB

メモリ:32GB の場合

  shared_buffers = 8GB

  work_mem = 64MB

  wal_buffers = 512KB

  checkpoint_segments = 32

  random_page_cost = 3.0

  effective_cache_size = 8GB

※今回の設定は、サーバーをDB専用にした場合を想定して書いてます。

記事を共有

最近人気な記事