データベース(PostgreSQL)のチューニング例

データベース(PostgreSQL)のチューニング例

該当製品:パッケージ版
質問ID:NEO-T0051
対象:全バージョン

運用前に、PostgreSQLのチューニングを実施することを推奨いたします。
PostgreSQLの各種パラメーターを調整することで、desknet’s NEOの性能を高めることができます。

※V3.5以前からバージョンアップをしてV4.0以上をご利用の場合は、PostgreSQLが9.2/9.3から9.6に変わります。
※V6.0以前からバージョンアップをしてV6.1以上をご利用の場合は、PostgreSQLが9.6から13に変わります。
※PostgreSQLのバージョンごとにチューニングが有効となります。V6.0以前からV6.1以降にアップデートを行われた場合はPostgreSQL 13のチューニングを再度実施してください。


PostgreSQL設定ファイル
「postgresql.conf」ファイル

※PostgreSQLデータ格納場所直下に格納されています。
Windows版格納先例: C:\Program Files\PostgreSQL\13\data
Linux版格納先例: /var/pgsql/data
※テキストエディターにて編集が可能です。
※チューニング前の「postgresql.conf」ファイルを事前にバックアップしてください。


代表的なチューニング項目
※以下の推奨値はサーバーマシンにdesknet’s NEO(PostgreSQL対応版)のみを導入し稼動させることを前提としています。他のシステムと共存させる場合は、この限りではありません。

1. shared_buffers
PostgreSQL全体で試用する共有メモリキャッシュであり、データの蓄積が進んだ際の応答性能に影響します。
サーバーの搭載メモリの25%程度が目安であり、増やしすぎても効果はありません。
※既定値:32MB or 128MB
搭載メモリ:推奨値
Copied!
4GB:1GB
8GB :2GB
16GB:4GB

2. work_mem
PostgreSQLの各プロセスが使用するソート用のメモリバッファです。
瞬間最大で、「work_mem」×「max_connection」+αのメモリを消費します。ピークを想定した設定を行ってください。
※既定値:1MB
搭載メモリ:推奨値
Copied!
4GB:8MB
8GB:8MB
16GB:16MB
「#work_mem = 1MB」のように、先頭に#でコメントアウトされている場合は、「work_mem = 8MB」としてコメントを外してください。

3. max_connections
同時接続受付数です。
CGI実行数>max_connectionsになるとタイムアウトが発生し、応答性が大きく低下します。
参考事例:5,000ユーザー規模のピーク時、瞬間最大アクセスが50~75CGI/秒程度
※既定値:100
基本的には変更は不要ですが、ピーク時にDBタイムアウトが発生する場合は、必要に応じて調整してください。

4. effective_cache_size
OSがディスクキャッシュにどれくらいメモリを使用できるかを推定するための参考値です。
サーバーの搭載メモリの25~50%程度が目安であり、実メモリの消費はしません。
※既定値:128MB
搭載メモリ:推奨値
Copied!
4GB:2GB
8GB:4GB
16GB:8GB
「#effective_cache_size = 128MB」のように、先頭が#でコメントアウトされている場合は、「effective_cache_size = 2GB」としてコメントを外してください。



設定後、PostgreSQLを再起動すると設定値が反映されます。

※PostgreSQLを再起動してもPostgreSQLが起動しない場合は、設定値に問題がある可能性があります。その場合は元の「postgresql.conf」ファイルに差し戻し、再起動を行ってください。
※statement_timeoutの設定が有効である場合、クエリの発行時やDBダンプ等でタイムアウトが発生し、通常の運用やアップデート作業時に問題が生じる可能性あります。先頭に#でコメントアウトにしてください。デフォルト値は無効です。
Powered by Helpfeel