[pgsql-jp: 39656] Re: データの断片化

Yumiko Izumi izumi-yumiko @ scnet.co.jp
2008年 11月 19日 (水) 14:24:18 JST


和泉です。

参考になるかわかりませんが、こちらでやっている方法を
紹介します。

PostgreSQLは7.3.xと古いですが、VACUUM周りの手順は同様
だと思います。

こちらのデータベースは、約3400ほどのテーブルが、多い場合
にはほぼ毎日更新されます。
また、運用管理ツールが使用するデータベースのため、基本的
には24時間連続稼働です。

このデータベースに対し、
 1回/日:REINDEX実行
 6回/日:VACUUM実行
を行っています。
VACUUMはANALYZEとFULLを併用することで、ディスク使用量を
一定に抑えたり、負荷を上げない効果があると思います。

具体的には、以下のように定時処理をしかけています。

00時07分:データベース中の全テーブルに対してREINDEXを実行
02時47分:データベースに対しVACUUM FULLを実行
06時47分:データベースに対しVACUUM ANALYZEを実行
10時47分:データベースに対しVACUUM ANALYZEを実行
14時47分:データベースに対しVACUUM ANALYZEを実行
18時47分:データベースに対しVACUUM ANALYZEを実行
22時47分:データベースに対しVACUUM ANALYZEを実行

それでは。

> 
> 市川 健児 です。
> 
> 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/



****************************************
  Yumiko Izumi
     E-mail:izumi-yumiko @ scnet.co.jp 
****************************************





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