やっぱたまにはVACUUM FULLしないとね。
某所で運用しているPostgreSQL8.xなDBサーバーで、 毎日cronで(※)たたいてるVACUUM処理がこんなメッセージを寄こすようになったらしい。
NOTICE: number of page slots needed (53296) exceeds max_fsm_pages (50000)なんか「設定値増やせば?」って言ってるみたいだから 素直に増やしときゃいいんじゃね?ちょっと増やせば足りるみたいだし。 とまあ非常にテキトー(笑)なアドバイスをしようとして、はたと思って聞いてみた。
HINT: Consider increasing the configuration parameter "max_fsm_pages" to a value over 53296.
「VACUUM FULLってやってます?」 「そういわれてみると、FULLは最近やった覚えないっす」
実際調べてみると、少なくとも半年、もしかしたら1年くらい、 FULLオプションつけたVACUUMはやってなさげとのこと。 で、メンテのついでにやってみたら、以後はぱったりと上のメッセージが出なくなったと。
※cronでたたくんじゃなくて、autovacuumだとどうなんだろ?やっぱり似たようなメッセージ出すのかな?出そうな気がする。
see also:
- 定常的なデータベース保守作業 (PostgreSQLマニュアル)
- [ThinkIT] 第3回:VACUUMの活用によるチューニング (1/2)

