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

MauMau maumau307 @ gmail.com
2012年 9月 18日 (火) 21:34:59 JST


両國さん


MauMauといいます。

笠原さんのアドバイスに加え、9.0系の最新版9.0.9にアップデートしたほうがよいかもしれません。
自動バキュームに影響する次のようなバグが修正されています。
これらがどういうバグかはよくわかりませんが、文面を見るかぎり、
自動バキュームの活動を阻害しそうです。


<9.0.9>
Only allow autovacuum to be auto-canceled by a directly blocked process (Tom 
Lane)
The original coding could allow inconsistent behavior in some cases; in 
particular, an autovacuum could get canceled after less than 
deadlock_timeout grace period.

<9.0.5>
Fix VACUUM so that it always updates pg_class.reltuples/relpages (Tom Lane)
This fixes some scenarios where autovacuum could make increasingly poor 
decisions about when to vacuum tables.


以上です。

----- Original Message ----- 
From: "両國 執" <ryogoku @ gcrest.com>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, September 18, 2012 8:07 PM
Subject: [pgsql-jp: 41214] Autovacuumが効果的に動作していないと思われる事象について


> こんにちは、両國と申します。
>
> 環境
> 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%の
> 閾値を超えて増え続けてしまう状態です)
>
> 何か、これ以外に必要なパラメータ等ございますでしょうか?
>

----- Original Message ----- 
From: "両國 執" <ryogoku @ gcrest.com>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, September 18, 2012 8:07 PM
Subject: [pgsql-jp: 41214] Autovacuumが効果的に動作していないと思われる事象について


> こんにちは、両國と申します。
>
> 環境
> 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 メーリングリストの案内