[pgsql-jp: 40793] Re: pg_statsin fo 1.2でautovacuum情報取得について

Tomoaki Sato sato @ sraoss.co.jp
2011年 5月 20日 (金) 10:33:15 JST


佐藤です。

> お世話になっております。山田です。
> 
>> lc_messages の値を C に設定して確認してみてください。
> 
> 上記ご回答に従い、設定を変更したところ、データ取得できておりました。
> ありがとうございます。
> 
> 一点、気になるのですが、突然画面に表示されるログのプロンプトを、
> 表示しない設定は、あるのでしょうか?

ログメッセージは、Syslog でファイルに保存してあるはずなので、/dev/null
に渡してしまっていいと思います。

  pg_ctl -D $PGDATA start \
      | pg_get_logfilterinfo ---postgres-datadir=$PGDATA > /dev/null 2>&1 &

>> 佐藤です。
>>
>>> お世話になっております。山田です。
>>>
>>> ご回答ありがとうございます。
>>>
>>>> ログフィルタは有効にしていますか?(笠原様)
>>>> データベースサーバはどのように起動しているでしょうか。(佐藤様)
>>>
>>> セットした記憶はあるのですが、ログフィルターが有効になっておりませんで
>>>>>> た。
>>>
>>>> Syslog には自動バキュームとチェックポイントに関するメッセージ
>>>> が出力されているでしょうか(佐藤様)
>>>
>>> こちらは出力されていることを確認しております。
>>>
>>> ご回答を参考に、以下のような作業を実施致しました。
>>> しかしながら、結果はデータ取得できておりません。
>>>
>>> ・ログフィルターを有効に設定
>>> -bash-3.2$ pg_ctl -D $PGDATA start | pg_get_logfilterinfo
>>> ---postgres-datadir=$PGDATA &
>>> [1] 3807
>>> -bash-3.2$ サーバは起動中です。
>>> [2011-05-19 16:50:31 JST][3811][][]LOG: ライブラリ"pg_stat_statements"
>>> をロードしました
>>> [2011-05-19 16:50:31 JST][3812][][]LOG: データベースシステムは
>>> 2011-05-19 16:50:21 JSTにシャットダウンしました
>>> [2011-05-19 16:50:31 JST][3815][][]LOG: 自動バキュームランチャプロセス
>>> [2011-05-19 16:50:31 JST][3811][][]LOG: データベースシステムの接続受付
>>> 準備が整いました。
>> (snip)
>>> 今回の作業について、何か原因などが見えましたら、ご教示お願いしたく存じ
>>> ます。
>>
>> ログに出力されるメッセージが日本語だからではないですかね。
>>
>> pg_get_logfilterinfo では、パイプで受け取ったメッセージを以下のパター
>> ンでマッチングして解析しているので、日本語ではうまく処理できないんだと
>> 思います。
>>
>> # autovacuum log format
>> $FORMAT_ATVCM_IN1 = q(LOG: \s\s [0-9]* [:]* \s* automatic \s vacuum \s
>> of \s table \s \"(\w+)\.(\w+)\.(\w+)\": \s index \s scans: \s (\d+)
>> \Z);
>> $FORMAT_ATVCM_IN2 = q( \s+ pages: \s (\d+) \s removed, \s (\d+) \s
>> remain \Z);
>> $FORMAT_ATVCM_IN3 = q( \s+ tuples: \s (\d+) \s removed, \s (\d+) \s
>> remain \Z);
>> $FORMAT_ATVCM_IN4 = q( \s+ system\susage: \s CPU \s
>> (\d+\.\d+)s/(\d+\.\d+)u \s sec \s elapsed \s (\d+\.\d+) \s sec \Z);
>>
>> # checkpoint log format
>> $FORMAT_CHKPT_IN1 = q(LOG: \s\s [0-9]* [:]* \s* checkpoint \s
>> starting: \s ([\w\s]+) \Z);
>> $FORMAT_CHKPT_IN2 = q(LOG: \s\s [0-9]* [:]* \s* checkpoint \s
>> complete: \s wrote \s (\d+) \s buffers \s \\((\d+\.\d+)\%\\); \s
>> (\d+)\s transaction \s log \s file \\(s\\) \s added, \s (\d+) \s
>> removed, \s (\d+) \s recycled; \s write=(\d+\.\d+) \s s, \s
>> sync=(\d+\.\d+) \s s, \s total=(\d+\.\d+) \s s \Z);
>>
>> lc_messages の値を C に設定して確認してみてください。


----
Tomoaki Sato <sato @ sraoss.co.jp>
SRA OSS, Inc. Japan


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