2009年7月31日

[pgsql-jp: 39946] Re:SSD上で運用するとautovacuumが頻繁に立ち上がる

笠原と申します。

加藤 健太 wrote:
> SSDでないサーバでHDDのサーバなのですが、こちらは1000個や3000個の
> データベースがあってもautovacuumはたまにしか起動しません。
> (参照が多く、更新系が少ないというサービスの特徴もありますが)
autovacuum は 自動で VACUUM や ANALYZE を実施しますが、autovacuum による
処理の実施契機は、各テーブルへの INSERT や UPDATE がどれくらい行われているか?

となります。
そのため、参照メインの DB にはあまり autovacuum は実施されません。

> SSDの方はほぼ常にどれかのDBをautovacuumしているので明らかに
> 異常です。また、HDDの方はそれぞれのDBが利用されていますが、SSDの
> 方はまでテストなので、1600のデータベースのうち一つしか利用されておらず、
> ほとんど更新もない状態だと思います。
テスト開始などに一斉に多数の DB へデータをリストアしてテストを開始した場合、
ほぼ全ての DB 内のテーブル が autovacuum の実施契機にひっかかるため、
しばらくの間は autovacuum が実施されたままになるかもしれません。
# しばらく置いておくと当該の事象は落ち着くかも・・
# テスト前などに手動で VACUUM ANALYZE を全 DB に実施しておくのも
回避手段になります。

または、worker プロセス(実際に autovacuum を実施するプロセス)が
不足しているため、VACUUM/ANALYZE 待ちになっている可能性があります。
autovacuum_max_workers を増やすと、この待ち状態が解消され、常に
atuovacuum が実施されている状態が解消されるかもしれません。

> autovacuumをOffにすれば、もちろん、常に起動される状態は回避できる
> のですが、そのような状態(PostgreSQLがSSDにフィットしていない)でサービス
> として、SSDを採用することはできないので。。
>
> さわっている感じだと速い気がするので残念です。。

--
笠原辰仁
kasahara.tatsuhito@xxxxx


投稿者 xml-rpc : 2009年7月31日 18:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/87155
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。