はじめに
PostgreSQLを勉強するにあたって、構築や運用で必要そうな事を備忘として記事にしました。
本記事は、チェックポインタやその裏で動くバックグランドライタについて、アクセス統計情報を通して確認しています。
前提
PostgreSQL 13 を使用しています。
pg_stat_bgwriterについて
pg_stat_bgwriterは、チェックポイントやバックグラウンドライタに関するデータベースクラスタ全体の統計情報や共有バッファに関する情報を表示します。
利用目的
- 共有バッファの調整(パラメータチューニング)
コマンド
SELECT * FROM pg_stat_bgwriter;

図. pg_stat_bgwriterビューの実行
主な表示項目
表. pg_stat_bgwriterビューの主な項目
ビュー | 説明 |
---|---|
buffers_checkpoint | チェックポイントによる書き出し |
buffers_clean | バックグラウンドライタによる書き出し |
buffers_backend | バックエンドプロセスによる書き出し |
buffers_alloc | 割当られたバッファ数 |
共有バッファのチューニング
チェックポイントではないバックグラウンドライタによるダーティーページの書き出しは、クリーニング処理と呼ばれ、buffers_clean列に関連情報が表示されます。
バックエンドプロセスが、新しいデータを共有バッファに乗せようとして空き容量がない場合、ダーティーページの書き出しをバックエンドプロセスが行い、buffers_backendが増加します。
それぞれダーティーページの同期処理には、以下のパターンがあります。
- チェックポイントによる書き出し:buffers_checkpoint
- バックグランドライタによる書き出し:buffers_clean
- バックエンドプロセスによる書き出し:buffers_backend
確認ポイント
共有バッファが不足しているかを確認するためには、
「buffers_backend」が「buffers_alloc」に対して大きい場合、shared_buffersの不足の可能性があります。
所感
ライタが動くと値は加算されていくので、リセットを掛けない限り正確にはわからないのではと思っています。
参考文献
1. 勝俣 智成, 佐伯 昌樹, 原田 登志 (2018)「[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則」技術評論社
2. 河原 翔 (2014)「LPI-Japan OSS-DB Gold 認定教材 PostgreSQL 高度技術者育成テキスト」エヌ・ティ・ティ・ソフトウェア株式会社
3. OSS-DB道場