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