オンプレミス版_PostgreSQL推奨設定

はじめに

対象

このマニュアルは、オンプレミス版 i-Reporterをご契約のお客様向けです。

概要

ConMas i-Reporterシステムの、データーベース(PostgreSQL)のチューニングに関する資料です。 帳票検索などのレスポンス改善を目的とした推奨設定を掲載しています。

設定ファイル

ファイルの場所

[PostgreSQLデーター格納ディレクトリ]\postgersql.conf

変更方法

上記のconfファイルをメモ帳でひらき、次ページ以降の内容で更新します。

搭載メモリーについて

  • APサーバー、DBサーバー同居型 の場合:  全メモリーの半分を搭載メモリーとする

  • APサーバー、DBサーバー分離型 の場合:  全メモリーすべてを搭載メモリーとする

推奨設定

  • shared_buffers データベースが使用する共有メモリバッファの値を指定します。 推奨値:搭載メモリの 25% effective_cache_size

  • effective_cache_size 設定値(データベースキャッシュに使用するメモリサイズ)が大きいと、インデックスを使用した検索が行われやすくなります。

    推奨値:搭載メモリーの1/4~1/2

  • work_mem ソート、テーブルJOINに使用するメモリ量です。 大きくするとメモリ使用量が増え、より高速なJOINソートが可能になります。 推奨値:「メモリ搭載量-shared_buffers = work_mem × 同時接続数(※)」

  • random_page_cost この値を小さく設定すると、オプティマイザがインデックスを使用した問い合わせプランを選択する傾向が強くなります。 一般的にHDDの場合は2、SSDの場合は1にします。

  • default_statistics_target PostgreSQLでは、特定のテーブルの特定のカラムごとに統計情報を取得する際の精度を指定することで、大きなテーブルでは荒くなりがちな統計情報の精度を調整することができるようになっています。 デフォルト値:100推奨値:1000(より精度を向上させるため)

適用方法

postgreSQLサービスを再起動することで適用されます。

設定サンプル

【前提】 APサーバー、DBサーバー同居型 メモリー:8GB ストレージ:HDD ※同居型のため、搭載メモリーを4GBとして計算する

【設定サンプル】

  • shared_buffers 4G×25% = 1GB

  • effective_cache_size 4G × 1/2 = 2GB

  • work_mem ※考えられる同時接続数を50で計算 4G – 1G = 50 × work_mem ≒50~60MB

  • random_page_cost HDDのため =2

  • default_statistics_target =1000

定期的なAnalyze実行

データベース内のテーブルの内容に関する統計情報を集計する処理を行います。

PostgreSQLでは統計情報を用いて効率のよい検索問い合わせを導き出しています。 この統計情報が最新の状態で集計できていない場合、効率のよい検索問い合わせができないことがあります。

Analyze処理は自動で動作しますが、一度の大量の帳票を登録するなど、運用内容によって最新の状態で集計されにくくなるケースがあります。

以下のコマンドを実行することでi-reporterで変更、追加の多いテーブルを対象にAnalyzeを実行できます。 定期的なAnalyze実行にご利用ください。

chcp 65001
SET PGPASSWORD=[PostgreSQLパスワードを入力してください。]
SET CURRENT_FOLDER=[本バッチファイルを配置したフォルダーパスを入力してください。]
echo analyze start > "%CURRENT_FOLDER%\analyze.log"
"[インストールドライブ]:\Program Files\PostgreSQL\[PostgreSQLバージョン]\bin\vacuumdb.exe" -U postgres -d irepodb  -Z -v
echo analyze result=%ERRORLEVEL% >> "%CURRENT_FOLDER%\analyze.log"

最終更新