[pgsql-jp: 36881] Re: autovacuumの実行結果の確認方法

ISHIDA Akio iakio @ mono-space.net
2006年 3月 15日 (水) 00:27:48 JST


こんにちは。石田@苫小牧市です。

Takuya.Kanayama @ jp.yokogawa.com wrote:
> 金山と申します。
> 
> 皆さんは、autovacuumの実行結果はどのようにして確認していますか。
> 
> pg_logにはautovacuumが起動されたことは記録されますが、
> 実際に解析や不要領域クリーンアップがされたかどうかは判断できません。

何でそういう機能が無いんでしょうねぇ?
これが無いのはちょっと意外でした。

> 過去の[pgsql-jp: 34393]を参考に、私の思いつくままを列挙しますと、
> 
> ・EXPLAINが変わった場合や処理速度が速くなった場合は、
>   解析または不要領域クリーンアップが行われた、と判断する。
> ・autovacuumの実行間隔を60秒にして、
>   pg_logのautovacuumの起動時間が60秒間隔ではなかった場合は、
>   解析または不要領域クリーンアップが行われた、と判断する。
> ・データファイルの物理サイズを監視するツールを作成して、
>   ファイルのサイズが小さくなった場合は不要領域クリーンアップが行われた、と判断する。
> ・pg_class.reltuplesを監視して、
>   値が変わっていた場合は解析が行われた、と判断する。
> 
> もっとよい方法やヒント等がありましたら、是非ご教授ください。
> 

良い方法というよりダメな方法かもしれませんが^^

o postgresql.conf の log_min_messages を DEBUG2 にしてやると、
  VACUUM VERBOSE と同じログが残ります。ただこれだと他のログも
  結構残ってしまいます。
o src/backend/postmaster/autovacuum.c の 303 行目あたりの
  vacstmt->verbose を true にしてやれば、
  log_min_messages = INFO でも同じログが残ると思います。



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