[pgsql-jp: 39564] Re: autovacuumの設定につきまして

ITAGAKI Takahiro itagaki.takahiro @ oss.ntt.co.jp
2008年 9月 10日 (水) 17:37:46 JST


板垣です。

小林 鉄矢 <tkobayashi @ pro-seeds.com> wrote:

> 以下5項目について、皆様はどのような設定を行なっているか教えて頂けますでしょうか。
> ・【autovacuum_naptime】autovacuumを起動する間隔を秒単位で指定
> ・【autovacuum_vacuum_threshold】VACUUMを起動するトリガとなる更新行数
> ・【autovacuum_analyze_threshold】ANALYZEを起動するトリガとなる更新行数
> ・【autovacuum_vacuum_scale_factor】VACUUMを起動するトリガとなる更新行数の割合
> ・【autovacuum_analyze_scale_factor】ANALYZEを起動するトリガとなる更新行数の割合

この5つについては、基本的にはデフォルトのままでよいと思いますよ。
もし、行数が増え続けるようなテーブルがあれば、そのテーブルだけ限定で
pg_autovacuum カタログで「scale_factor = 0 / threshold = 1日で増える行数」の
ようなチューニングをすることはあります。

    autovacuum_naptime = 1min
    autovacuum_vacuum_threshold = 50
    autovacuum_analyze_threshold = 50
    autovacuum_vacuum_scale_factor = 0.2
    autovacuum_analyze_scale_factor = 0.1

チューニングするならば、むしろ遅延パラメータのほうが重要です。
VACUUM 中はどうしても性能が落ちますので。

    autovacuum_vacuum_cost_delay = 20
    autovacuum_vacuum_cost_limit = -1 (200)

delay/limit は、デフォルトでは 20ms/200 ですが、
limit のほうをストレージのスペックに合わせて動かすと良いです。
ストレージの性能が低ければ limit を小さめに(遅延を多く)、
高ければ limit を大きめに(遅延を少なく)、といった感じです。

ただ、どうしても試行錯誤は必要です。
自動で適当にチューニングしてもらえると楽なんですけどね。




pgsql-jp メーリングリストの案内