今回は、Goldの「パフォーマンスチューニング - 性能に関係するパラメータ」からの出題です。
pg_stat_bgwriterビューによって表示される
チェックポイントによる書き出しの際に値が増加する
buffers_backendの値がbuffers_allocに対して大きい場合は、shared_buffersの値のチューニングを検討する必要がある
バックグラウンドライタによる書き出しの際に値が増加する
バックエンドプロセスによる書き出しの際に値が増加する
※この例題は実際のOSS-DB技術者認定試験とは異なります。
正解はA、C、Eです。
buffers_backendは新しいバッファを割り当てるためにバックエンドプロセスにより書き出されたdirtyバッファ数を表示します。
それぞれの選択肢について説明します。
A. pg_stat_bgwriterビューによって表示される
正解です。
pg_stat_bgwriterビューはバックグラウンドライタによるクラスタ全体の統計情報を表示することができるビューです。
以下はpg_stat_bgwriterビューの表示例です。
例題にあるbuffers_backendや、buffers_cleanなどを表示することができます。
designet=# select * from pg_stat_bgwriter;
-[ RECORD 1 ]-----------------+------------------------------
checkpoints_timed | 72
checkpoints_req | 1
checkpoint_write_time | 185667
checkpoint_sync_time | 144
buffers_checkpoint | 2040
buffers_clean | 64
maxwritten_clean | 0
buffers_backend | 5563
buffers_backend_fsync | 0
buffers_alloc | 6590
stats_reset | 2019-02-03 14:34:39.343554+09
---- cut here ----
B. チェックポイントによる書き出しの際に値が増加する
間違っています。
チェックポイントによる書き出しの際に増加するのはbuffers_checkpointの値です。
C. buffers_backendの値がbuffers_allocに対して大きい場合は、shared_buffersの値のチューニングを検討する必要がある
正解です。
buffers_allocは割り当てられたバッファ数、shared_buffersはデータベースサーバが使用する共有メモリバッファのために使用するメモリ量です。
buffers_backendの値は、新しいバッファを割り当てようとして空きがない場合に、バックエンドプロセスが書き出しを行うことで増加します。
このことから、buffers_backendの値がbuffers_allocに対して大きいということは、shared_buffersの値が不足している可能性があります。そのため、shared_buffresの値のチューニングを検討する必要があります。
D. バックグラウンドライタによる書き出しの際に値が増加する
間違っています。
バックグラウンドライタによる書き出しの際に増加するのはbuffers_cleanの値です。
E. バックエンドプロセスによる書き出しの際に値が増加する
正解です。
新しいバッファを割り当てようとして空きがない場合、ダーティページの書き出しをバックエンドプロセスが行うことになります。これにより、buffers_backendの値が増加します。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.