|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Добрый день. Есть огромная таблица. Примерно 500Гб размером и 2 млрд строк. Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02). Т.е. пока 40 млн строк не измениться, она не вакуумирутеся. Подскажите пожалуйста два вопроса: 1) Какие рекомендации по автовакууму для таких таблиц? 2) хотапдэйты в таком случае работают и как это проверить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 11:57 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Уткъ Добрый день. Есть огромная таблица. Примерно 500Гб размером и 2 млрд строк. Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02). Т.е. пока 40 млн строк не измениться, она не вакуумирутеся. Подскажите пожалуйста два вопроса: 1) Какие рекомендации по автовакууму для таких таблиц? 2) хотапдэйты в таком случае работают и как это проверить?
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 12:13 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
mefman Уткъ Добрый день. Есть огромная таблица. Примерно 500Гб размером и 2 млрд строк. Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02). Т.е. пока 40 млн строк не измениться, она не вакуумирутеся. Подскажите пожалуйста два вопроса: 1) Какие рекомендации по автовакууму для таких таблиц? 2) хотапдэйты в таком случае работают и как это проверить?
Партицирование не рассматриваем. Ну понятно что индивидуально, но какие приблизительно значения? я так понимаю что очень маленькие, типа 0.00001, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 12:29 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Уткъ mefman пропущено...
Партицирование не рассматриваем. Ну понятно что индивидуально, но какие приблизительно значения? я так понимаю что очень маленькие, типа 0.00001, да? не обязательно в % - можно в строках (autovacuum_vacuum_threshold) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 12:45 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
см. Per-table Throttling тут ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 13:15 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Уткъ, Вы реально думаете что autovacuum бесплатный и лёгкий для сервера? Он не просто же так сделан с консервативными параметрами. Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal. 1) Какие рекомендации по автовакууму для таких таблиц? autovacum_vacuum_scale_factor меньше чем 0.05 по большой таблице тупо вредно. 0.1 вполне достаточный консервативно настроенный параметр. 2) хотапдэйты в таком случае работают и как это проверить? работают но местами хуже хотя конечно смотря какой профиль нагрузки на базу что там с hot видно по pg_stat_user_tables по соотношению n_tup_upd и n_tup_hot_upd Рекомендации - не создавать таких таблиц. Особенно если там активная запись (update) в первые гигабайты свежих данных и терабайт почти readonly архива в одной таблице. В такой ситуации НЕ ВОЗМОЖНО обеспечить разумную работу таблицы. Так что системно это партиционированием решается. Если же в терабайтную таблицу запись более менее случайно идет - оно будет работать относительно разумно Но в любом случае таблица больше 100GB - показание к партиционированию. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 16:15 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Maxim Boguk 2) хотапдэйты в таком случае работают и как это проверить? работают но местами хуже хотя конечно смотря какой профиль нагрузки на базу что там с hot видно по pg_stat_user_tables по соотношению n_tup_upd и n_tup_hot_upd Посмотрел, это отношение 0.005, т.е. меньше 1 % Можно как-то его улучшить? По нагрузке на таблицу, 60% - insert 20% - update 20% - delete ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 17:15 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
mefman см. Per-table Throttling тут Спасибо. Думаю как раз персонально для таблицы autovacuum_vacuum_threshold сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 17:17 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Maxim Boguk Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal. Максим, а почему автовакуум грузит WAL ? Первый раз про это слышу... И сколько примерно ему требуется от объема данных таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 17:18 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Уткъ Maxim Boguk 2) хотапдэйты в таком случае работают и как это проверить? работают но местами хуже хотя конечно смотря какой профиль нагрузки на базу что там с hot видно по pg_stat_user_tables по соотношению n_tup_upd и n_tup_hot_upd Посмотрел, это отношение 0.005, т.е. меньше 1 % Можно как-то его улучшить? По нагрузке на таблицу, 60% - insert 20% - update 20% - delete если меньше 1% это уже не к autovacuum вопрос а к вашим update и индексам. Если update меняет значение хоть одного поля указанного хоть в одном индексе на таблице - как HOT update он уже не может быть сделан. И надо смотреть что за индексы у вас и что за update. Наиболее распостранненный способ ломать HOT это поле типа mtime меняемое при каждом update и индекс по нему. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 17:19 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Уткъ Maxim Boguk Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal. Максим, а почему автовакуум грузит WAL ? Первый раз про это слышу... И сколько примерно ему требуется от объема данных таблицы? Так vacuum пишет и в таблицу и в индексы это его задача собственно. И как любая запись она через wal идет. Требуется - ну смотря сколько страниц таблицы и индексов надо будет менять. В пределе с учетом full page writes легко можно получить в размер таблицы с индексами (а при невезении если походу vacuum будут checkpoints делаться так и превысить его в пару раз). Из моей практике на более менее активных базах зачастую больше 50% всего wal потока генерируется autovacuum. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2021, 18:18 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Maxim Boguk Уткъ пропущено... Максим, а почему автовакуум грузит WAL ? Первый раз про это слышу... И сколько примерно ему требуется от объема данных таблицы? Так vacuum пишет и в таблицу и в индексы это его задача собственно. И как любая запись она через wal идет. Требуется - ну смотря сколько страниц таблицы и индексов надо будет менять. В пределе с учетом full page writes легко можно получить в размер таблицы с индексами (а при невезении если походу vacuum будут checkpoints делаться так и превысить его в пару раз). Из моей практике на более менее активных базах зачастую больше 50% всего wal потока генерируется autovacuum. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Максим, благодарю за ответ. Вы меня сильно напугали :( Вот что уточнить хотел, вот начался автовакуум огромной таблицы и идет он, к примеру 5 часов. Все эти 5 часов будут WAL копиться или они будут очищаться, как обычно? автовакуум ведь прерывается, "засыпает" или он прям все от начала до конца в одной транзакции и вал не отпускает... По объему вы хорошо объяснили, а по рассасыванию очень надеюсь что не все так страшно ((( пользуюсь вашим перл скриптов по компатизации таблиц - отличная штука! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 11:30 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Уткъ Maxim Boguk пропущено... Так vacuum пишет и в таблицу и в индексы это его задача собственно. И как любая запись она через wal идет. Требуется - ну смотря сколько страниц таблицы и индексов надо будет менять. В пределе с учетом full page writes легко можно получить в размер таблицы с индексами (а при невезении если походу vacuum будут checkpoints делаться так и превысить его в пару раз). Из моей практике на более менее активных базах зачастую больше 50% всего wal потока генерируется autovacuum. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Максим, благодарю за ответ. Вы меня сильно напугали :( Вот что уточнить хотел, вот начался автовакуум огромной таблицы и идет он, к примеру 5 часов. Все эти 5 часов будут WAL копиться или они будут очищаться, как обычно? автовакуум ведь прерывается, "засыпает" или он прям все от начала до конца в одной транзакции и вал не отпускает... По объему вы хорошо объяснили, а по рассасыванию очень надеюсь что не все так страшно ((( пользуюсь вашим перл скриптов по компатизации таблиц - отличная штука! Будет очищаться в шатном порядке. А так да wal'a vacuum по большой таблице может крайне немало написать. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 11:40 |
|
автовакуум огромной таблицы
|
|||
---|---|---|---|
#18+
Maxim Boguk Уткъ пропущено... Максим, благодарю за ответ. Вы меня сильно напугали :( Вот что уточнить хотел, вот начался автовакуум огромной таблицы и идет он, к примеру 5 часов. Все эти 5 часов будут WAL копиться или они будут очищаться, как обычно? автовакуум ведь прерывается, "засыпает" или он прям все от начала до конца в одной транзакции и вал не отпускает... По объему вы хорошо объяснили, а по рассасыванию очень надеюсь что не все так страшно ((( пользуюсь вашим перл скриптов по компатизации таблиц - отличная штука! Будет очищаться в шатном порядке. А так да wal'a vacuum по большой таблице может крайне немало написать. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Тогда не так страшнно! Большое спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 11:42 |
|
|
start [/forum/topic.php?fid=53&fpage=10&tid=1993989]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 249ms |
total: | 415ms |
0 / 0 |