Using EDB Postgres Tuner

EDB Postgres Tunerは2つの方法で使用できます。すべてのチューニングの推奨事項を自動的に適用するか、選択したチューニングの推奨事項を手動で適用します。

自動チューニング

すべてのチューニングの推奨事項を自動的に適用するには、 edb_pg_tuner.autotune パラメーターをtrue に設定します。 Postgresを再起動して変更を適用します。 EDB Postgres Tunerは、チューニングの推奨事項の適用を開始します。

マニュアルチューニング

選択したチューニングの推奨事項を手動で適用するには、 edb_pg_tuner.autotune パラメーターがデフォルトのfalse に設定されていることを確認します。次に、 edb_pg_tuner_recommendations 関数を使用して、出力からチューニングの推奨事項を検査します。

チューニングの推奨事項の形式をconf またはsql に設定できます。例:

SELECT edb_pg_tuner_recommendations(sql);

そこで:

  • conf は、parameter = value のような出力を提供し、構成ファイルにコピーして貼り付けることができます。これがデフォルトです。

  • sql は、好みのPostgresクライアントツールで実行できるALTER SYSTEM SET parameter = value のような出力を提供します。

例

この例では、チューニングの推奨事項を postgresql.conf ファイルに手動で適用する方法を示します。

postgresql.conf ファイルの設定例を次に示します。

checkpoint_completion_target = 0.2
effective_cache_size = 4GB
enable_seqscan = off
fsync = off
full_page_writes = off
max_wal_size = 2MB
seq_page_cost = 1.3
shared_buffers = 128MB

次のコマンドは、デフォルトのconf 形式でpostgresql.conf ファイルのチューニングの推奨事項を提供します。

postgres=# SELECT * FROM edb_pg_tuner_recommendations();
__OUTPUT__
           recommendation
- -----------------------------------
 checkpoint_completion_target = 0.9
 effective_cache_size = 4653 MB
 enable_seqscan = on
 fsync = on
 full_page_writes = on
 max_wal_size = 84MB
 maintenance_work_mem = 524 MB
 shared_buffers = 1474 MB
(8 rows)

次のコマンドは、 sql 形式で出力を提供します。

postgres=# SELECT edb_pg_tuner_recommendations(sql);
__OUTPUT__
             edb_pg_tuner_recommendations
- -----------------------------------------------------
 ALTER SYSTEM SET checkpoint_completion_target = 0.9;
 ALTER SYSTEM SET effective_cache_size = 4653 MB;
 ALTER SYSTEM SET enable_seqscan = on;
 ALTER SYSTEM SET fsync = on;
 ALTER SYSTEM SET full_page_writes = on;
 ALTER SYSTEM SET max_wal_size = 84MB;
 ALTER SYSTEM SET maintenance_work_mem = 524 MB;
 ALTER SYSTEM SET shared_buffers = 1474 MB;
(8 rows)

conf 形式のチューニングの推奨事項をコピーして、 postgresql.conf ファイルに貼り付けることができます。

checkpoint_completion_target = 0.9
effective_cache_size = 4653 MB
enable_seqscan = on
fsync = on
full_page_writes = on
max_wal_size = 84MB
maintenance_work_mem = 524 MB
shared_buffers = 1474 MB

好みのPostgresクライアントツールでsql 形式でチューニングの推奨事項を実行できます。

ALTER SYSTEM SET checkpoint_completion_target = 0.9;
ALTER SYSTEM SET effective_cache_size = 4653 MB;
ALTER SYSTEM SET enable_seqscan = on;
ALTER SYSTEM SET fsync = on;
ALTER SYSTEM SET full_page_writes = on;
ALTER SYSTEM SET max_wal_size = 84MB;
ALTER SYSTEM SET maintenance_work_mem = 524 MB;
ALTER SYSTEM SET shared_buffers = 1474 MB;

推奨GUC

EDB Postgres Tunerは、次のGUCを推奨できます。 static カテゴリは、固定の推奨設定を提供します。 dynamic カテゴリーは、特定のアルゴリズムを使用して、ワークロードまたはハードウェアリソースに従ってより良い設定を提案します。

GUC

Category

Recommendation

Version

autovacuum

static

on

checkpoint_completion_target

static

0.9

effective_cache_size

dynamic

enable_async_append

static

on

enable_bitmapscan

static

on

enable_gathermerge

static

on

enable_group_by_reordering

static

on

enable_hashagg

static

on

enable_hashjoin

static

on

enable_incremental_sort

static

on

13+

enable_indexonlyscan

static

on

enable_indexscan

static

on

enable_material

static

on

enable_memoize

static

on

14+

enable_mergejoin

static

on

enable_nestloop

static

on

enable_parallel_append

static

on

11+

enable_parallel_hash

static

on

11+

enable_partition_pruning

static

on

11+

enable_partitionwise_aggregate

static

on

enable_partitionwise_join

static

on

enable_seqscan

static

on

enable_sort

static

on

enable_tidscan

static

on

fsync

static

on

full_page_writes

static

on

log_checkpoints

static

on

max_wal_size

dynamic

maintenance_work_mem

dynamic

parallel_leader_participation

static

on

seq_page_cost

static

1.0

shared_buffers

dynamic

track_activities

static

on

track_counts

static

on

zero_damaged_pages

static

on