Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.06.2021, 11:57
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#18+
Добрый день. Есть огромная таблица. Примерно 500Гб размером и 2 млрд строк. Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02). Т.е. пока 40 млн строк не измениться, она не вакуумирутеся. Подскажите пожалуйста два вопроса: 1) Какие рекомендации по автовакууму для таких таблиц? 2) хотапдэйты в таком случае работают и как это проверить? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 12:13
|
|||
---|---|---|---|
автовакуум огромной таблицы |
|||
#18+
Уткъ Добрый день. Есть огромная таблица. Примерно 500Гб размером и 2 млрд строк. Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02). Т.е. пока 40 млн строк не измениться, она не вакуумирутеся. Подскажите пожалуйста два вопроса: 1) Какие рекомендации по автовакууму для таких таблиц? 2) хотапдэйты в таком случае работают и как это проверить?
... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 12:29
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#18+
mefman Уткъ Добрый день. Есть огромная таблица. Примерно 500Гб размером и 2 млрд строк. Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02). Т.е. пока 40 млн строк не измениться, она не вакуумирутеся. Подскажите пожалуйста два вопроса: 1) Какие рекомендации по автовакууму для таких таблиц? 2) хотапдэйты в таком случае работают и как это проверить?
Партицирование не рассматриваем. Ну понятно что индивидуально, но какие приблизительно значения? я так понимаю что очень маленькие, типа 0.00001, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 12:45
|
|||
---|---|---|---|
автовакуум огромной таблицы |
|||
#18+
Уткъ mefman пропущено...
Партицирование не рассматриваем. Ну понятно что индивидуально, но какие приблизительно значения? я так понимаю что очень маленькие, типа 0.00001, да? не обязательно в % - можно в строках (autovacuum_vacuum_threshold) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 13:15
|
|||
---|---|---|---|
автовакуум огромной таблицы |
|||
#18+
см. Per-table Throttling тут ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 16: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, 17: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:17
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#18+
mefman см. Per-table Throttling тут Спасибо. Думаю как раз персонально для таблицы autovacuum_vacuum_threshold сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 17:18
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#18+
Maxim Boguk Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal. Максим, а почему автовакуум грузит WAL ? Первый раз про это слышу... И сколько примерно ему требуется от объема данных таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.06.2021, 17:19
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#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, 18:18
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#18+
Уткъ Maxim Boguk Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal. Максим, а почему автовакуум грузит WAL ? Первый раз про это слышу... И сколько примерно ему требуется от объема данных таблицы? Так vacuum пишет и в таблицу и в индексы это его задача собственно. И как любая запись она через wal идет. Требуется - ну смотря сколько страниц таблицы и индексов надо будет менять. В пределе с учетом full page writes легко можно получить в размер таблицы с индексами (а при невезении если походу vacuum будут checkpoints делаться так и превысить его в пару раз). Из моей практике на более менее активных базах зачастую больше 50% всего wal потока генерируется autovacuum. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.06.2021, 11:30
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#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:40
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#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:42
|
|||
---|---|---|---|
|
|||
автовакуум огромной таблицы |
|||
#18+
Maxim Boguk Уткъ пропущено... Максим, благодарю за ответ. Вы меня сильно напугали :( Вот что уточнить хотел, вот начался автовакуум огромной таблицы и идет он, к примеру 5 часов. Все эти 5 часов будут WAL копиться или они будут очищаться, как обычно? автовакуум ведь прерывается, "засыпает" или он прям все от начала до конца в одной транзакции и вал не отпускает... По объему вы хорошо объяснили, а по рассасыванию очень надеюсь что не все так страшно ((( пользуюсь вашим перл скриптов по компатизации таблиц - отличная штука! Будет очищаться в шатном порядке. А так да wal'a vacuum по большой таблице может крайне немало написать. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Тогда не так страшнно! Большое спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1993989]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 164ms |
0 / 0 |