Size: a a a

PostgreSQL + 1C + Linux

2021 March 05

ИС

Илья Савельев... in PostgreSQL + 1C + Linux
Сергей Голод
2 минуты и стоят в 100%? Точно "странное". С разбегу сложно скзаать что с вашими таблицами. Попробуйте на них vacuum full analyze сделать. Если ситуация позволяет
vacuum full пока никак
источник

ИС

Илья Савельев... in PostgreSQL + 1C + Linux
думал об этом
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Сергей Якушев
Забиваю очередь на завтра) А можно ли как-то промониторить: достаточно ли автовакуума или следует форсировать его?
select count(1) from pg_stat_progress_vacuum;
в среднем этот запрос должен давать кол-во меньше чем autovacuum_max_workers
Это означает что система справляется текущим кол-вом процессов и всё ок
Если результат долгое время =  autovacuum_max_workers, то нужно анализировать
Чем Илья как раз и занимается сейчас
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Сергей Якушев
Забиваю очередь на завтра) А можно ли как-то промониторить: достаточно ли автовакуума или следует форсировать его?
ваша очередь подошла:
with max_age as (select 2000000000 as max_old_xid, setting as autovacuum_freeze_max_age from pg_catalog.pg_settings where name = 'autovacuum_freeze_max_age' ), per_database_stats as (select datname, m.max_old_xid::int, m.autovacuum_freeze_max_age::int, age(d.datfrozenxid) as oldest_current_xid from pg_catalog.pg_database d join max_age m on (true) where d.datallowconn) select datname, oldest_current_xid, to_char(100*(oldest_current_xid/max_old_xid::float), 'FM999.90%') as "% towards wraparound", to_char(100*(oldest_current_xid/autovacuum_freeze_max_age::float), 'FM999.90%') as "% towards emergency autovacuum" from per_database_stats order by 2 desc;
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Илья Савельев
vacuum full пока никак
давай по другому:
1. Откл автовакуум в настройках
2. перечитываешь настройки
3. Убиваешь сессии автовакууму, ибо сам наврятли уже умрёт
4. на этих таблицах, а лучше на всех из запроса делаешь vacuum+analyze+freeze (без full)
5. вкл автовакуум
6. перечитываешь настройки
наблюдаешь
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Сергей Голод
ваша очередь подошла:
with max_age as (select 2000000000 as max_old_xid, setting as autovacuum_freeze_max_age from pg_catalog.pg_settings where name = 'autovacuum_freeze_max_age' ), per_database_stats as (select datname, m.max_old_xid::int, m.autovacuum_freeze_max_age::int, age(d.datfrozenxid) as oldest_current_xid from pg_catalog.pg_database d join max_age m on (true) where d.datallowconn) select datname, oldest_current_xid, to_char(100*(oldest_current_xid/max_old_xid::float), 'FM999.90%') as "% towards wraparound", to_char(100*(oldest_current_xid/autovacuum_freeze_max_age::float), 'FM999.90%') as "% towards emergency autovacuum" from per_database_stats order by 2 desc;
Сергей ,как результат интерпретируешь?
Сколько emergency норм, а сколько плохо?
источник

ИС

Илья Савельев... in PostgreSQL + 1C + Linux
Антон Дорошкевич
давай по другому:
1. Откл автовакуум в настройках
2. перечитываешь настройки
3. Убиваешь сессии автовакууму, ибо сам наврятли уже умрёт
4. на этих таблицах, а лучше на всех из запроса делаешь vacuum+analyze+freeze (без full)
5. вкл автовакуум
6. перечитываешь настройки
наблюдаешь
Антон добрый день, в этом сценарии необходим рестарт ПГ, я правильно тебя понял? Ведь настройки вакуум только при старте
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
нет, рестарт не нужен
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
reload отключает и включает автовакуум
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Антон Дорошкевич
Сергей ,как результат интерпретируешь?
Сколько emergency норм, а сколько плохо?
при >100%(% towards emergency autovacuum)  уже начинает работать автовакуум.
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
правильно понимаю что это всё относительно xid ?
т.е. тут нет анализа сколько строк проапдейтилось/удалилось?
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
да. это скорее оценка xid.
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
ну тут тогда оценка сработки автовакуума относительно заморозки получается
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
для меня важно мониторить wraparound. А в таблицах почти одни вставки и апдейты, удалений записей практически нет
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
последний столбез можно убрать, и ориентироваться на третий, когда там более10%, то автовакуум запуститься независимо от того были там апдейты и делиты или нет
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Антон Дорошкевич
последний столбез можно убрать, и ориентироваться на третий, когда там более10%, то автовакуум запуститься независимо от того были там апдейты и делиты или нет
да, верно. Я уже не стал поправлять запрос
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Сергей Голод
для меня важно мониторить wraparound. А в таблицах почти одни вставки и апдейты, удалений записей практически нет
в этом случае всё ок
источник

PY

Petr Yakovlev in PostgreSQL + 1C + Linux
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
тоже вариант)
источник

E

Evgeny in PostgreSQL + 1C + Linux
Error
А вы видели контейнеры с закрытым ключем и сами серты?
так причем тут криптопровайдер? любой из них будет работать с одним и тем же сертификатом
источник