[pgsql-jp: 36270] VACUUMの性能を向上させたい

Yumiko Izumi izumi-yumiko @ tokyo.scnet.co.jp
2005年 10月 27日 (木) 13:06:44 JST


お世話になっております。Izumiです。

VACUUMの性能向上について質問させてください。

<稼働環境>
OS:RedHat Enterprise Linux AS Release 3(Taroon Update 6)
CPU:Xeon 2.8GHz
メモリ:20GB
HDD:80GB(S-ATA)
PostgreSQL:7.3.8

<測定条件>
・テーブル数が3500ほどあるDB
・2分間隔で1000テーブルに合計1万行を書き込む
 →合計で1日に720万行書き込まれる。
・書き込むテーブルにはインデックスがついている
・書き込むテーブルにはすでに5万行書き込まれている
 →1000テーブル合計で5000万行ある。
・書き込むテーブル内のデータは一定量に保たれる
 →定期的に不要となったデータのDELETEをしている
・VACUUMはDBに対し、以下サイクルで行っている。
 VACUUM ANALYZEを4時間置きに1日6回
 そのうち1回はVACUUM FULL ANALYZE

<備考>
あるパッケージソフトに含まれるデータベースです。
他にもメモリやディスクを使うプロセスが多数動作するため
リソースをDBが独り占めできない状態です。

上記環境でデータ書き込みの性能測定をしていましたが、極端に時間が
かかり、書き込みが間に合わないケースが発生しました。

そこでネックを探っていったところ、VACUUMを行っている時間帯にディスク
I/Oがネックになっていることがわかりました。

計測の結果、VACUUM FULL ANALYZEの時間が1日目は30分程度だった
ものが日を追うごとに長くなり、5日目には倍以上の時間がかかるようになっ
ていました。

そこで、このネックを解消するための対策として、以下を考えました。
これらが有効かどうか、有効な場合どうすべきか、アドバイスを
いただけないでしょうか?

1.PostgreSQLのチューニング
 postgresql.confの内容で、有効なものがありますか?

2.PostgreSQLのバージョンアップ
 7.4.xや8.0.xにあげることで、VACUUMの性能は向上しますか?
 また、バージョンアップが有効な場合、手順についてもアドバイス
 いただけると助かります。

以上よろしくお願いします。




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