Bgwriter and pg_stat_bgwriter.buffers_clean aspects

Поиск
Список
Период
Сортировка
От Dmitry Koterov
Тема Bgwriter and pg_stat_bgwriter.buffers_clean aspects
Дата
Msg-id d7df81620812251343h12072e11id0fae9d4d4b54ff4@mail.gmail.com
обсуждение исходный текст
Ответ на Bgwriter and pg_stat_bgwriter.buffers_clean aspects  ("Dmitry Koterov" <dmitry@koterov.ru>)
Список pgsql-general
Hello.

I am trying to tune PostgreSQL write parameters to make writing operation fast on a heavy-loaded database (a lot of inserts/updates).
After resetting the pg_stat_bgwriter statistics (I do it by deleting global/pgstat.stat file and restarting PostgreSQL) I monitor the following:

# select * from pg_stat_bgwriter;
 checkpoints_timed | checkpoints_req | buffers_checkpoint | buffers_clean | maxwritten_clean | buffers_backend | buffers_alloc
-------------------+-----------------+--------------------+---------------+------------------+-----------------+---------------
                 8 |               0 |              19092 |             0 |                0 |            2285 |         30148

So, you see that some time after resetting the statistics we have:
- a large value in buffers_backend;
- a zero buffers_clean.

Why?

Documentation: http://www.westnet.com/~gsmith/content/postgresql/chkp-bgw-83.htm
says that "buffers_backend ... [is a number of]  times a database backend (probably the client itself) had to write a page in order to make space for the new allocation", and "buffers_clean ... [means that] the background writer cleaned ... buffers (cleaned=wrote out dirty ones) during that time".

What I am trying to achieve is that all writing operation are performed asynchronously and mostly flushed to the disk before a CHECKPOINT occurred, so CHECKPOINT is cheap thanks to bgwiter work.

Could you please explain what happened and what large buffers_backend and zero buffers_clean mean?


Related parameters:

shared_buffers = 512MB
fsync = on             
synchronous_commit = off
wal_writer_delay = 2000ms
checkpoint_segments = 20         
checkpoint_timeout = 1min        
checkpoint_completion_target = 0.8
checkpoint_warning = 1min        
bgwriter_delay = 10ms      
bgwriter_lru_maxpages = 1000
bgwriter_lru_multiplier = 10

В списке pgsql-general по дате отправления:

Предыдущее
От: "Dmitry Koterov"
Дата:
Сообщение: Bgwriter and pg_stat_bgwriter.buffers_clean aspects
Следующее
От: Gerhard Wiesinger
Дата:
Сообщение: Re: Conditional commit inside functions