3.5. Automation Controller の PostgreSQL データベースの設定およびメンテナンス
Automation Controller のパフォーマンスを向上させるために、データベースで次の設定パラメーターを設定できます。
メンテナンス
VACUUM
タスクと ANALYZE
タスクは、パフォーマンスに影響を与える可能性がある重要なメンテナンス作業です。通常の PostgreSQL 操作では、更新によって削除または不要になったタプルはテーブルから物理的に削除されません。これらは、VACUUM
が完了するまで残ります。したがって、頻繁に更新されるテーブルでは特に、定期的に VACUUM を実行する必要があります。ANALYZE
は、データベース内のテーブルの内容に関する統計情報を収集し、結果を pg_statistic
システムカタログに保存します。その後、クエリープランナーはこれらの統計情報を使用して、クエリーの最も効率的な実行計画を決定します。自動バキュームに関する PostgreSQL 設定パラメーターは、VACUUM
コマンドおよび ANALYZE
コマンドの実行を自動化します。自動バキュームは true に設定することを推奨します。ただし、データベースにアイドル時間がまったくない場合、自動バキュームは実行されません。自動バキュームによってデータベースディスクの領域が十分にクリーンアップされていないことが確認された場合、特定のメンテナンス期間中に特定のバキュームタスクをスケジューリングすることで解決する場合があります。
設定パラメーター
PostgreSQL サーバーのパフォーマンスを向上させるには、データベースメモリーを管理する次の Grand Unified Configuration (GUC) パラメーターを設定します。これらのパラメーターは、データベースサーバーの設定を管理する postgresql.conf
ファイルの $PDATA
ディレクトリー内にあります。
-
shared_buffers
: データをキャッシュするためにサーバーに割り当てるメモリーの量を決定します。このパラメーターのデフォルト値は 128 MB です。この値を変更する場合は、マシンの合計 RAM の 15% - 25% に設定する必要があります。
shared_buffers の値を変更した後は、データベースサーバーを再起動する必要があります。
work_mem
: ディスクスワッピングの前に内部ソート操作とハッシュテーブルで使用されるメモリーの量を指定します。ソート操作は、order by、distinct、および merge join 操作に使用されます。ハッシュテーブルは、hash joins と hash-based アグリゲーションで使用されます。このパラメーターのデフォルト値は 4 MB です。work_mem
パラメーターに正しい値を設定すると、ディスクスワッピングが減少し、検索速度が向上します。-
次の式を使用して、データベースサーバーの
work_mem
パラメーターの最適な値を計算します。
-
次の式を使用して、データベースサーバーの
Total RAM * 0.25 / max_connections
work_mem
に大きな値を設定すると、データベースに対して開いている接続が多すぎる場合に、PostgreSQL サーバーがメモリー不足 (OOM) になる可能性があります。
-
max_connections
: データベースサーバーへの同時接続の最大数を指定します。 -
maintenance_work_mem
: vacuum、create index、および alter table add foreign key 操作などのメンテナンス操作で使用するメモリーの最大量を指定します。このパラメーターのデフォルト値は 64 MB です。このパラメーターの値を計算するには、次の式を使用します。
Total RAM * 0.05
バキューム処理のパフォーマンスを向上させるには、maintenance_work_mem
を work_mem
よりも高く設定します。
関連情報
自動バキューム設定に関する詳細は、Automatic Vacuuming を参照してください。