Size: a a a

pgsql – PostgreSQL

2021 March 17

EK

Evgeny Kuzin in pgsql – PostgreSQL
Тяжелоо обновлять терабайтную базу часто
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Evgeny Kuzin
Тяжелоо обновлять терабайтную базу часто
нет технологического окна?
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
нет
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Evgeny Kuzin
Тяжелоо обновлять терабайтную базу часто
Хмм? Это дело одной-двух минут, в норме.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Ну ладно, а в логах (на реплике, конечно) что?
Про checkpoints что-то есть?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
это ключевой момент, это какая-то бага в счетчике, надо искать в -bugs/-hackers рассылках
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
причем это только на репликах такое поведение
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
shit
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
# select now()-stats_reset,checkpoints_timed from pg_stat_bgwriter;
       ?column?        | checkpoints_timed
------------------------+-------------------
3 days 10:19:39.260576 |             18622

вот например у меня за 3 дня, 18k чекпоинтов на совершенно idle реплике на локалхосте)))
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
Спасибо
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
это ключевой момент, это какая-то бага в счетчике, надо искать в -bugs/-hackers рассылках
Почему Вы думаете, что это "какая-то бага"?
Не нужно спешить (это вполне может быть совершенно нормальным поведением). ;)
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
я не против,  пусть тогда это поведение будет описано в документации
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
похожая фигня со счетчиками коммитов в pg_stat_database на мастере, они все время потихоньку увеличиваются даже для template1 базы, но допускаю что это сайд-эффект от внутренней деятельности какого-то демона
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
я не против,  пусть тогда это поведение будет описано в документации
Как говорится, инициатива наказуема исполнением — опишите. ;)

Скорее всего (если в логах чисто), происходит вот что: по таймеру начинается restart point (и "засчитывается"), но обнаруживает, что подходящей (новой) записи с primary ещё не пришло — облом. И потом происходит вот это (соответствующий комментарий из checkpointer.c):
 /*
* We were not able to perform the restartpoint (checkpoints
* throw an ERROR in case of error).  Most likely because we
* have not received any new checkpoint WAL records since the
* last restartpoint. Try again in 15 s.
*/
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Yaroslav Schekin
Почему Вы думаете, что это "какая-то бага"?
Не нужно спешить (это вполне может быть совершенно нормальным поведением). ;)
я думаю что это бага, ровно потому что в документации поле checkpoints_timed описано как Number of scheduled checkpoints that have been performed. При этом по факту в логах нет никаких свидетельств о выполняющихся чекпоинтах (при log_checkpoints=on). Поэтому система сама себе противоречит - если чекпоинты есть, то информация о них должна быть и в стате и в логах одновременно.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Yaroslav Schekin
Как говорится, инициатива наказуема исполнением — опишите. ;)

Скорее всего (если в логах чисто), происходит вот что: по таймеру начинается restart point (и "засчитывается"), но обнаруживает, что подходящей (новой) записи с primary ещё не пришло — облом. И потом происходит вот это (соответствующий комментарий из checkpointer.c):
 /*
* We were not able to perform the restartpoint (checkpoints
* throw an ERROR in case of error).  Most likely because we
* have not received any new checkpoint WAL records since the
* last restartpoint. Try again in 15 s.
*/
> по таймеру начинается restart point (и "засчитывается"),

проблема в том что счетчик тикает слишком часто, сильно-сильно чаще чем указано в checkpoint_timeout.

> Как говорится, инициатива наказуема исполнением — опишите. ;)

что именно описать?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
я думаю что это бага, ровно потому что в документации поле checkpoints_timed описано как Number of scheduled checkpoints that have been performed. При этом по факту в логах нет никаких свидетельств о выполняющихся чекпоинтах (при log_checkpoints=on). Поэтому система сама себе противоречит - если чекпоинты есть, то информация о них должна быть и в стате и в логах одновременно.
Да, это ошибка в документации (checkpoints_timed на самом деле считает, сколько checkpoint начиналось по таймауту).
Так что пишите исправления, если оно Вам надо. ;)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
> по таймеру начинается restart point (и "засчитывается"),

проблема в том что счетчик тикает слишком часто, сильно-сильно чаще чем указано в checkpoint_timeout.

> Как говорится, инициатива наказуема исполнением — опишите. ;)

что именно описать?
Вы поняли, почему он тикает (может тикать) на репликах? Если хотите — опишите это.
источник

EK

Evgeny Kuzin in pgsql – PostgreSQL
Угу, он потом почти сразу дергает pgstat_send_bgwriter();
источник