172 похожих чатов

Кто-Нибудь может посоветовать из опыта стратегию подбора scale factor

автовакуума? Есть таблица на 80М строк, раз в день в нее приходит ETL джоба и пачками по 300к-1М добавляет/обновляет 2-2.5М строк и удаляет тысяч 300-500. Плюс где-то 2-10 раз в минуту в таблу падают новые строки из приложения. Вот непонятно что лучше, настроить автовакуум чтобы точно срабатывал после окончания ETL, но тогда есть риск, что пачка мертвых строк останется висеть до следующих суток.

19 ответов

10 просмотров

а просто руками вакуум запустить после комита?

Andrey-Tatarnikov Автор вопроса
doc
а просто руками вакуум запустить после комита?

Об этом надо помнить, что вот эти три строчки кода в джобе не просто так.

Andrey-Tatarnikov Автор вопроса
doc
и?

Ну что и? А на завтра сменится етл-движок или вообще вместо етл джобов база присядет на кафку

ну если на пальцах, то у вас примерно 3млн изменений / 80млн строк = 0.0375

Andrey-Tatarnikov Автор вопроса
Marat Surmashev
ну если на пальцах, то у вас примерно 3млн изменен...

Ну вот хочется с одной стороны чтобы автовакуум отработал как можно бОльшее число изменений, с другой стороны чтобы не спамился. То есть если поставить чтобы срабатывал на 3М, в какой-нибудь день будет меньше изменений и совсем не запустится, будет обидно

Andrey Tatarnikov
Ну вот хочется с одной стороны чтобы автовакуум от...

А что такого уж страшного в том, что он лишний раз запустится?

Andrey-Tatarnikov Автор вопроса
Yaroslav Schekin
А что такого уж страшного в том, что он лишний раз...

Он скорее всего запустится одновременно с работой етл. Насколько это чревато?

Andrey Tatarnikov
Он скорее всего запустится одновременно с работой ...

не особо страшно, просто диски будут лишний раз напрягаться Сколько таблица весит?

Andrey Tatarnikov
Он скорее всего запустится одновременно с работой ...

Я уверен, что почти у всех он таким образом всё время запускается, и почти никто не замечает. Т.е. там есть с ним какая-то реальная проблема?

Andrey-Tatarnikov Автор вопроса
Yaroslav Schekin
Я уверен, что почти у всех он таким образом всё вр...

Не думаю. Мы для себя текущую ситуацию открыли сравнительно недавно и вот думаем как лучше поступить

Andrey-Tatarnikov Автор вопроса
Andrey Tatarnikov
Не думаю. Мы для себя текущую ситуацию открыли сра...

То есть сейчас есть проблема блоатинга, и ее заметно глазом

Yaroslav Schekin
Я уверен, что почти у всех он таким образом всё вр...

Както раз заметили, когда умудрились во время бекапа запустить огромную вргузку данных и на 90 гиговой таблице запустился вакуум, ssd встал колом =) и то что по отдельности занимало не более 30 мин, длилось 2 часа

Andrey Tatarnikov
Не думаю. Мы для себя текущую ситуацию открыли сра...

Т.е. до этого не замечали, ммм? ;) > То есть сейчас есть проблема блоатинга, и ее заметно глазом Для начала — сделать autovacuum агрессивнее, как обычно. И лучше глобально, IMHO — в этих потабличных настройках потом легко запутаться, забыть о них и т.п.

Andrey-Tatarnikov Автор вопроса
Yaroslav Schekin
Т.е. до этого не замечали, ммм? ;) > То есть сейч...

Так этож SaaS, в нем пока жареный петух не того... :)

Marat Surmashev
Както раз заметили, когда умудрились во время бека...

А там точно проблема была не в чём-то совсем другом (checkpoint, или блокировки, если "пришёл" anti-wraparound vacuum и т.п.)?

Andrey-Tatarnikov Автор вопроса
Yaroslav Schekin
Т.е. до этого не замечали, ммм? ;) > То есть сейч...

Научились собирать статистику постгреса и отливать ее в эластик, пару месяцев копили, посмотрели динамики, и узрели n_dead_tuples, взлетающие свечкой после отработки суточных етл в 2-3М. И так они и висят пока в ночи не приходит бэкапилка вендорская и не делает принудительный вакуум

Yaroslav Schekin
А там точно проблема была не в чём-то совсем друго...

Не думаю. Хотя честно признаюсь - не разбирались, просто увидели что io 100%, просто подождали, через 2 часа все успешно завершилось

Andrey Tatarnikov
Научились собирать статистику постгреса и отливать...

А проблемы от них какие-то были? На таблицах существенных размеров 2-3М dead tuples — это ни о чём.

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта