[pgsql-jp: 41214] Autovacuumが効果的に動作していないと思われる事象について

両國 執 ryogoku @ gcrest.com
2012年 9月 18日 (火) 20:07:17 JST


こんにちは、両國と申します。

環境
DB:PostgreSQL9.0.2
OS:CentOS6.3

Autovacuumが正常に動作していないと思われる事象が発生しています。

以下、postgresql.conf内のautovacuumに関するパラメータは、

autovacuum = on
log_autovacuum_min_duration = 10000
autovacuum_max_workers = 10
autovacuum_naptime = 1min
autovacuum_vacuum_threshold = 500
autovacuum_analyze_threshold = 50
autovacuum_vacuum_scale_factor = 0.2
autovacuum_analyze_scale_factor = 0.1
autovacuum_freeze_max_age = 200000000
autovacuum_vacuum_cost_delay = -1
autovacuum_vacuum_cost_limit = -1

で運用しております。show all; で確認しても、全て反映されていることは確認
済みです。

Disk上のDBサイズの肥大化が進んでおり、DeadTupleがきちんと掃除されている
かを確認した際、
autovacuum_vacuum_scale_factor = 0.2 であるにも関わらず、LiveTupleに対し
て、殆どのテーブルで20%を
超えてしまっていて、掃除される気配がありません。
ワーカーの数が追いついていないかと思い、autovacuum_max_workers = 10 に増
やしたりと試してみましたが、
特に変化がありません。
ログを出してみたところ、Autovacuum自体は数秒間隔で動作しているようなので
すが、このような事象に対する
知見や対策といったものをご教授いただきたいと思います。
(AutovacuumでDisk上のDBファイルのサイズが小さくなるのではなく、リサイク
ル用にマークされる、という認識は
ありますが、手動でvacuumをかけて DeadTupleを削除した場合でも、その後サー
ビスインさせた後に、再び20%の
閾値を超えて増え続けてしまう状態です)

何か、これ以外に必要なパラメータ等ございますでしょうか?

何卒よろしくお願い致します。



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