[pgsql-jp: 39650] Re: データの断片化
ichikawa kenji
ichikawa @ fancs.com
2008年 11月 18日 (火) 18:05:25 JST
市川 健児 です。
お返事、ありがとうございます。
postgresql.conf の max_fsm_pages は
max_fsm_pages = 100000
vacuum の実行結果を見ると、
DETAIL: A total of 5136 page slots are in use (including overhead).
5136 page slots are required to track all free space.
Current limits are: 100000 page slots, 1000 relations, using 651 KB.
max_fsm_pages の値は十分そうに思えるので、
一日一回の vacuum の回数を増やしてみます。
また、アプリケーションを停止できるときに REINDEX を実行して、
パフォーマンスを確認してみます。
On Tue, 18 Nov 2008 18:05:44 +0900
FUKUSHIMA Katsuaki <kfukushima @ sis.seino.co.jp> wrote:
> 福島です。
>
> vacuum は1日1回実行ということですが postgresql.conf の max_fsm_pages
> の値が、削除される1日分のフリースペース管理しきれない小さな値になっ
> ているということはないでしょうか?この場合 vacuum を実行しても、削除
> スペースの再利用が行われません。PostgreSQLの場合、更新 = 削除 + 追加
> なので、更新が多い仕組みだと、その分フリースペースが大量に発生し、
> vacuum を掛けない限り再利用されない状況になります。
>
> また、更新が非常に多いということですが index が肥大化している可能性
> もありますね。更新の多いテーブルの index に対して定期的に reindex を
> 掛けることで、回復することもあります。
>
>
> ichikawa kenji さんは書きました:
> > 市川 健児 です。
> >
> > PostgreSQL 8.1.3 を運用しておりますが、
> > 特定のテーブルに対する更新が多く、データの断片化により、
> > PostgreSQL を運用しているサーバが高負荷状態になってしまい、
> > アプリケーションのパフォーマンスに影響が出ております。
> >
> > 24時間稼動を前提としているデータベースのため、
> > 通常の vacuum のみを一日一回、実行し、
> > full vacuum は実行しておりません。
> >
> > 現在は、ほぼ月に一度程度発生する、 高負荷状態に陥ったときは、
> > アプリケーションを停止させ、
> > データベースそのものを pg_dump を使ってダンプさせて、
> > データベースを再構築することで対応しております。
> >
> > 対応として、tablespace の利用や PostgreSQl 8.3 への
> > アップグレードを考えておりますが、私と同じようにデータの断片化により、
> > パフォーマンス劣化を経験された方からのアドバイスをいただきたく、
> > メーリングリストに投稿させていただきました。
> >
> > よろしくお願いいたします。
> >
> >
> >
> >
> > ------------------------------
> > ichikawa kenji
> > mailto:ichikawa @ fancs.com
> > http://www.fancs.com/
> >
> >
> >
> >
>
>
> --
> ---------------------------------------------------------
> FUKUSHIMA Katsuaki at Seino Information Service Co., Ltd.
> e-mail kfukushima @ sis.seino.co.jp
------------------------------
ichikawa kenji
mailto:ichikawa @ fancs.com
http://www.fancs.com/
pgsql-jp メーリングリストの案内