[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 メーリングリストの案内