[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 メーリングリストの案内