powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / автовакуум огромной таблицы
14 сообщений из 14, страница 1 из 1
автовакуум огромной таблицы
    #40076041
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть огромная таблица.

Примерно 500Гб размером и 2 млрд строк.

Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02).

Т.е. пока 40 млн строк не измениться, она не вакуумирутеся.


Подскажите пожалуйста два вопроса:

1) Какие рекомендации по автовакууму для таких таблиц?

2) хотапдэйты в таком случае работают и как это проверить?
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076048
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Добрый день.

Есть огромная таблица.

Примерно 500Гб размером и 2 млрд строк.

Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02).

Т.е. пока 40 млн строк не измениться, она не вакуумирутеся.


Подскажите пожалуйста два вопроса:

1) Какие рекомендации по автовакууму для таких таблиц?

2) хотапдэйты в таком случае работают и как это проверить?

  • Партишнинг
  • Настройка индивидуального автовакуума для таблицы
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076061
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman
Уткъ
Добрый день.

Есть огромная таблица.

Примерно 500Гб размером и 2 млрд строк.

Что-то мне подсказывает, что автовакуум по ней плохо работает (стоит 0.02).

Т.е. пока 40 млн строк не измениться, она не вакуумирутеся.


Подскажите пожалуйста два вопроса:

1) Какие рекомендации по автовакууму для таких таблиц?

2) хотапдэйты в таком случае работают и как это проверить?

  • Партишнинг
  • Настройка индивидуального автовакуума для таблицы

Партицирование не рассматриваем.


Ну понятно что индивидуально, но какие приблизительно значения?

я так понимаю что очень маленькие, типа 0.00001, да?
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076069
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
mefman
пропущено...

  • Партишнинг
  • Настройка индивидуального автовакуума для таблицы

Партицирование не рассматриваем.


Ну понятно что индивидуально, но какие приблизительно значения?

я так понимаю что очень маленькие, типа 0.00001, да?

не обязательно в % - можно в строках (autovacuum_vacuum_threshold)
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076088
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. Per-table Throttling тут
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076158
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ,

Вы реально думаете что 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
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076183
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk

2) хотапдэйты в таком случае работают и как это проверить?
работают но местами хуже хотя конечно смотря какой профиль нагрузки на базу
что там с hot видно по pg_stat_user_tables по соотношению n_tup_upd и n_tup_hot_upd



Посмотрел, это отношение 0.005, т.е. меньше 1 %

Можно как-то его улучшить?


По нагрузке на таблицу,

60% - insert
20% - update
20% - delete
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076184
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman
см. Per-table Throttling тут


Спасибо.

Думаю как раз персонально для таблицы autovacuum_vacuum_threshold сделать.
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076185
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk

Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal.


Максим, а почему автовакуум грузит WAL ?

Первый раз про это слышу...

И сколько примерно ему требуется от объема данных таблицы?
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076186
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
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
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076206
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Maxim Boguk

Частый (или постоянный) autovacuum на 500GB таблицы вам очень сильно пригрузит сервер по дискам и записи wal.


Максим, а почему автовакуум грузит WAL ?

Первый раз про это слышу...

И сколько примерно ему требуется от объема данных таблицы?


Так vacuum пишет и в таблицу и в индексы это его задача собственно.
И как любая запись она через wal идет.
Требуется - ну смотря сколько страниц таблицы и индексов надо будет менять.
В пределе с учетом full page writes легко можно получить в размер таблицы с индексами (а при невезении если походу vacuum будут checkpoints делаться так и превысить его в пару раз).
Из моей практике на более менее активных базах зачастую больше 50% всего wal потока генерируется autovacuum.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076562
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
Уткъ
пропущено...


Максим, а почему автовакуум грузит WAL ?

Первый раз про это слышу...

И сколько примерно ему требуется от объема данных таблицы?


Так vacuum пишет и в таблицу и в индексы это его задача собственно.
И как любая запись она через wal идет.
Требуется - ну смотря сколько страниц таблицы и индексов надо будет менять.
В пределе с учетом full page writes легко можно получить в размер таблицы с индексами (а при невезении если походу vacuum будут checkpoints делаться так и превысить его в пару раз).
Из моей практике на более менее активных базах зачастую больше 50% всего wal потока генерируется autovacuum.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



Максим, благодарю за ответ.

Вы меня сильно напугали :(



Вот что уточнить хотел, вот начался автовакуум огромной таблицы и идет он, к примеру 5 часов.

Все эти 5 часов будут WAL копиться или они будут очищаться, как обычно?

автовакуум ведь прерывается, "засыпает" или он прям все от начала до конца в одной транзакции и вал не отпускает...

По объему вы хорошо объяснили, а по рассасыванию очень надеюсь что не все так страшно (((

пользуюсь вашим перл скриптов по компатизации таблиц - отличная штука!
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076564
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
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
...
Рейтинг: 0 / 0
автовакуум огромной таблицы
    #40076565
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
Уткъ
пропущено...



Максим, благодарю за ответ.

Вы меня сильно напугали :(



Вот что уточнить хотел, вот начался автовакуум огромной таблицы и идет он, к примеру 5 часов.

Все эти 5 часов будут WAL копиться или они будут очищаться, как обычно?

автовакуум ведь прерывается, "засыпает" или он прям все от начала до конца в одной транзакции и вал не отпускает...

По объему вы хорошо объяснили, а по рассасыванию очень надеюсь что не все так страшно (((

пользуюсь вашим перл скриптов по компатизации таблиц - отличная штука!


Будет очищаться в шатном порядке.
А так да wal'a vacuum по большой таблице может крайне немало написать.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Тогда не так страшнно!

Большое спасибо!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / автовакуум огромной таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]