[pgsql-jp: 41131] ■質問■PostgresSQLのディスク使用量の増える仕組みについて

S.Watanabe sywatanabe @ iwass.co.jp
2012年 6月 14日 (木) 16:21:21 JST


渡辺と申します。

PostgreSQL(Ver.8.3.1)のDBファイル(base/nnnnn/配下のテーブル等のデータを含む
ファイル)が
何を契機に増えているのか調べています。

過去メール※は参照しましたが、いまひとつ理解できていません。

私の理解では、以下のようなものです。
1.クライアントからデータ追加要求を受信
2.PostgreSQLサーバの共有バッファにデータが追加
3.WALログにデータが追加
4.以下のいづれかでDBファイルが更新
  1)CHECKPOINTコマンド実行時
  2)サーバ停止時(pg_cnt -D DBクラスタパス stop)
  3)checkpoint_timeoutで指定した時間が経過
  4)WALログがcheckpoint_segmentsで指定した個数以上に達した時

しかし、int型5つからなるレコードを1レコード追加した時は、
上記4.3)でDBファイルが更新されますが、100レコード追加した場合は、
即座にDBファイルの更新時刻とサイズが変化していました。
更新前後ではWALログは1つしかない状態でした。
また設定は非同期書込みで、バックグラウンドライタやバキュームは停止させています。

これはどういう要因で更新されているのでしょうか?
2.または3.の時点でDBファイルに書込み領域が無い場合は即座に
DBファイルのサイズを8kbの倍数サイズ増やしてデータが書き込まれるのでしょうか?
だとすれば、WALログが実際にDBファイルに反映するデータはチェックポイント実行前の
8kb未満のデータしかないように思えるのですが。。。


動作させた時の設定は以下の通りです。
■設定
  fsync = off
  synchronous_commit = off
  full_page_writes = off
  checkpoint_segments = 3
  checkpoint_timeout = 1h
  checkpoint_completion_target = 0.5
  bgwriter_lru_maxpages = 0
  autovacuum = off
  track_counts = off
  shared_buffers = 24MB


※[pgsql-jp: 39573] Re: PostgreSQLのディスク使用量が増えるタイミングについて

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Shuichi Watanabe

E-mail : sywatanabe @ iwass.co.jp

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/







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