[pgsql-jp: 41247] Re: pgstat.statのRAM化

Kasahara Tatsuhito kasahara.tatsuhito @ gmail.com
2012年 10月 15日 (月) 01:45:35 JST


笠原と申します。

> そこでご教示いただきたいのですが、pgstat.stat をRAM領域に移行しても
> 問題ないのでしょうか?
機能的には問題ありません。

ただ、RAM(多分、tempfsとか?)ですのでOSのシャットダウン時にはいったん不揮発性の
ディスクへ退避し、PostgreSQLの起動時にはまたRAMへの配置を行う必要があります。
# おそらく、ver8.3系なのでシンボリックリンクの張り替えなどを行っていると思います。

pgstat.stat の稼働統計情報はそれ自体がテーブルやインデックスなどへのアクセス状況を
格納している有用な情報であることに加え、内部的にはautovacuumの実施契機判断にも
使用されています。

常時はstats collector が(メモリ上の)pgstat.statへ頻繁に書き込みをしつつ(ただし非トランザクショナル)、
PostgreSQLのシャットダウン時にはファイルをフラッシュし、次回の起動時にはそれを使って稼働統計
情報の取得を継続しています。

欠損したとしても、とりあえずPostgreSQLが動かなくなることはないのでRAMに置いても
問題ありませんが、先のとおり有用な情報ですしautovacuumの挙動に影響があるため、
RAMのクリア前に退避できるようにしておくと良いかと思います。

2012年10月12日 14:22 Naoki Kobayashi <n.kobayashi @ digi.jp>:
>
> 皆様はじめまして。
> お世話になります。小林と申します。
>
> CentOS 5.3 + PostgreSQL 8.3.7 の環境をSSDに移植することになりました。
> 移植自体は問題なく進み、動作もHDDと何ら変わりませんでした。
>
> しかし、SSDでは書換回数の上限があることから、書換回数の増加状況を調べたとこ
> ろ、
> 想定よりもかなり早く増加していることがわかりました。
> それも、何の処理もせずにただ放置しているだけでも増加していきます。
>
> 何が書換回数を増加させているのか調査したところ、stats collecter process が
> 0.5秒ごとに $PGDATA/global/pgstat.stat を更新しているという情報を得ました。
> たしかに pgstat.stat をRAM領域(tmpfs)に出力させるようにしたところ、
> 書換回数の増加が治まりました。
>
> そこでご教示いただきたいのですが、pgstat.stat をRAM領域に移行しても
> 問題ないのでしょうか?
>
> よろしくお願い致します。
>



-- 
Tatsuhito Kasahara
kasahara.tatsuhito _at_ gmail.com


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