PostgresqlのFSM(Free Space Map) とvacuumの関係

【この記事の所要時間 : 約 2 分

Postgresqlの運用中に確認しておく項目に「FSM」がある。
FSMの上限値の設定は、postgresql.conf の max_fsm_pages で行う。
PostgreSQL:チューニング勘所 – max_fsm_pages

PostgreSQL は更新・削除が行われても, 古い行はそのまま残る追記型の RDBMS です。
この古くなった不要領域は, VACUUM を実行するによって共有メモリ上の FSM(Free Space Map) に記録されます。更新・削除を行う場合は, FSM を検索して不要領域を再利用します。

上記にもある通り、大きすぎても小さすぎてもいけないパラメータであるので、現在のFSMの値を vacuumdb のログで日々チェックしておく必要がある。
チェックしながら、適度なパラメータになるように変更していく必要がある。その際に、実際のFSMのボリュームによっては、FSM領域を回収して再利用可能な状態にする普通の vacuum を行ったり、テーブルファイルを縮小させ、OSにディスク容量を返却するところまで行う vacuum full を行ったりする計画に変更の必要がないかをチェックしていく。
ThinkIT – VACUUMの活用によるチューニング

FSMが不足している場合は、VACUUM FULLを実行して回収されなくなっている不要領域を解消し、FSMやVACUUM間隔の設定を見直します。

以下、参考までに。
http://canalize.jp/archives/008035.php

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)
勝俣 智成 佐伯 昌樹 原田 登志
技術評論社
売り上げランキング: 118,598
スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です