|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
После прочтения статей о настройке bgwriter, казалось, что всё просто и понятно: - уменьшаешь bgwriter_delay - процесс фоновой записи меньше отдыхает между периодами активности; - увеличиваешь bgwriter_lru_maxpages - больше грязных буферов записывается за один проход. В итоге оптимальные настройки bgwriter должны уменьшить количество буферов, которые серверные процессы вынуждены сбрасывать на диск самостоятельно. Однако у меня, после уменьшения в 4 раза bgwriter_delay и двукратного увеличения bgwriter_lru_maxpages, всё вышло наоборот: по данным pg_stat_bgwriter (после сброса статистики) наибольшее число буферов записано именно backend'ами. Настройки checkpointer не трогал. Почему так вышло? Настройка bgwriter вроде бы должна позволять ему записывать на диск больше буферов, но в итоге выходит, что серверным процессам всё равно недостаточно страниц для своих дел. Версия - PostgreSQL 11.6. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 21:46 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Безенчук, Попробуйте параметры на максимум выкрутить и посмотреть будет ли результат... некоторые workloads так устроены что backend writes будут что ни делай. Некоторые таки решаются через bgwriter. Самое эффективное ставить bgwriter_delay на минимум и далее регулировать нагрузку от bgwriter через bgwriter_lru_maxpages. PS: на почти любой системе кроме совсем калькулятора или readonly базы - выставление предельно аггресивных настроек bgwriter - единственное рабочее решение. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 05:46 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Maxim Boguk, спасибо! Однако, вызывает интерес вот ещё какой разрез: до того, как я поменял настройки bgwriter, его статистика показывала, что на долю backend'ов приходится меньше записанных буферов, чем на checkpointer+bgwriter. Когда я перенастроил bgwriter, позволив ему записывать больше - вышло обратное: backend'ы стали лидерами по записанным буферам. Может ли это быть связано с тем, что autovacuum был подстроен для более интенсивного функционирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 12:25 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Безенчук Maxim Boguk, спасибо! Однако, вызывает интерес вот ещё какой разрез: до того, как я поменял настройки bgwriter, его статистика показывала, что на долю backend'ов приходится меньше записанных буферов, чем на checkpointer+bgwriter. Когда я перенастроил bgwriter, позволив ему записывать больше - вышло обратное: backend'ы стали лидерами по записанным буферам. Может ли это быть связано с тем, что autovacuum был подстроен для более интенсивного функционирования? Скорее всего именно с этим и связано. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 14:28 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
В тему настроек возник ещё один вопрос: если checkpointer бодро рапортует в лог следующим образом: "checkpoint complete: wrote 131743 buffers (25.1%)", значит ли это, что в данный момент грязными буферами было занято 25,1% от объёма shared_buffers? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 18:03 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Безенчук В тему настроек возник ещё один вопрос: если checkpointer бодро рапортует в лог следующим образом: "checkpoint complete: wrote 131743 buffers (25.1%)", значит ли это, что в данный момент грязными буферами было занято 25,1% от объёма shared_buffers? точнее даже так "пока checkpoint обоходил последовательно все shared buffers он нашел 25.1% из них грязными" (что не совсем тоже что "в данный момент грязными буферами было занято"). Система то динамическая. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 20:06 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Спасибо за уточнение! Но в целом можно сказать, что при текущей нагрузке на базу (грязные буферы занимают четверть всего объёма shared_buffers) значение этого параметра подобрано с запасом? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 23:18 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Безенчук Спасибо за уточнение! Но в целом можно сказать, что при текущей нагрузке на базу (грязные буферы занимают четверть всего объёма shared_buffers) значение этого параметра подобрано с запасом? настройка bgwriter не очень связанна с тем сколько dirty на checkpoint получается. я бы тупо на максимум бы его настройки выкрутил и успокоился. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2021, 23:21 |
|
Настройка bgwriter'а
|
|||
---|---|---|---|
#18+
Maxim Boguk Безенчук В тему настроек возник ещё один вопрос: если checkpointer бодро рапортует в лог следующим образом: "checkpoint complete: wrote 131743 buffers (25.1%)", значит ли это, что в данный момент грязными буферами было занято 25,1% от объёма shared_buffers? точнее даже так "пока checkpoint обоходил последовательно все shared buffers он нашел 25.1% из них грязными" https://github.com/postgres/postgres/blob/REL_13_STABLE/src/backend/storage/buffer/bufmgr.c#L2012 И более того: это только то что писал сам чекпойнтер. Найти мог больше, но если их к моменту прохода цикла кто-то уже записал - не считаем в этом счётчике. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2021, 11:41 |
|
|
start [/forum/topic.php?fid=53&fpage=11&tid=1994010]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 380ms |
0 / 0 |