2012年6月14日

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

渡辺と申します。

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@xxxxx

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


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




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