[pgsql-jp: 38156] Re: cacuum に異常に時間がかかる理由

ISHIDA Akio iakio @ mono-space.net
2007年 3月 14日 (水) 21:56:14 JST


こんにちは。石田@苫小牧市です。

07/03/14 に Morita Kazuro<morita @ yuki.ad.jp> さんは書きました:
> 森田と申します。いつもお世話になっております。
>
> 私が管理しているPostgreSQLのサーバーの1つが vacuum に異様に時間が
> かかっています。利用されるのは基本的に金土日月なのでいつも火曜未明に
> crontab で vacuumをやっているのですが、vacuum の時間がだいたい
> 10時間以上かかり、お昼になっても終わりません。
>
> OS はCentOS 4.4.i386
> PostgreSQLのバージョンは 8.1.4
> データベースのサイズは今のところ
> pg_size_pretty(pg_database_size('xxx')) が18Gです。
> du -s で見てもそんなもんです。
> max_fsm_pages は、
> max_fsm_pages = 300000
> max_fsm_pages 不足の警告はでていません。

max_fsm_pagesではなくmaintenance_work_memを増やして
みてはいかがでしょうか。

> メモリは1Gです。
> vacuumのパラメータは
> vacuumdb -a -z です。
> 土日はけっこう激しい更新があります。
>
> それにしても10時間でも終わらないのは異常ではないかと思います。
>
> なお、pg_dump してデータベースを作り直してから psql < ダンプファイル
> をして vacuumdb -a -z なら2時間くらいで終わります。
> このままどうにもならないのなら、これでで行こうかとも考えているのですが。
>
> しかし、異様に遅くなる原因が思いつきません。なにかお知恵を借りられないでしょうか?
>
>

更新が大量にあるほど、vacuumには時間がかかります。
より頻繁に行なえば、1回のvacuumにかかる時間は少なく
なると思います。
現在では、vacuum中でもテーブルの参照/更新は可能ですし、
vacuum_cost_delayでゆっくりvacuumすることもできるので
頻繁に行なうことを考えてみてもいいと思います。

-- 
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>



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