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

Мозг, имеем Пг версии 11.5. Есть таблица на которой довольно

большая нагрузка. Оттуда удаляется колонка (колонка в запросах не используется). Размер базы распух в 2,5 раза где-то за пару минут (мы чуть не влетели в out of disk space), аварийно тормознули Пг, запустили заново размер базы вернулся в нормальное состояние.
Что это было? Почему так сильно распухла база? Что с этим делать?

Частично ответ я думаю что знаю: Пг, при удалении колонки на самом деле ее не удаляет, удаление происходит при SELECT'е судя по всему, но откуда в 2,5 раза-то? Тем более что база далеко не из одной этой таблицы состоит. Конкретные размеры базы и таблицы, если надо, приведу. Но все-таки вопросы остаются актуальными.

19 ответов

28 просмотров

Ну он потер ссылку на столбец, а потом видимо начал вакуум делать, чтобы данные из таблицы рядом на диске лежали

Warstone- Автор вопроса
Константин Коломейцев ☭
Ну он потер ссылку на столбец, а потом видимо нача...

Откуда 2,5 раза? (Для таблицы это не 2,5 это сильно больше)

Warstone
Откуда 2,5 раза? (Для таблицы это не 2,5 это сильн...

Тут уже из логов надо анализировать. Если было чисто удаление столбца без запуска руками вакуума и прочего, так не могло случиться. А столбец индексируемый был? Может ещё и в составном индексе? Были ссылки на него? Вариантов много, так с лету наверно никто не скажет

Warstone- Автор вопроса
Warstone
Вакуум не запускали. В индексах его небыло.

Тогда логи только. Я в 170гб таблице удалял столбцы, проблем не было

Автовакум пошел

Warstone- Автор вопроса
Даниил Агниашвили
В htop смотрели?

Смотрели. И запросы которые 10мс по 4 секунды выполнялись и диск задрачивали по страшному.

Warstone
Смотрели. И запросы которые 10мс по 4 секунды выпо...

по описанию похоже, что I/O был занят, значит можно предположить, что дефрагментация или типа того производилась

Warstone- Автор вопроса
Александр Костюченко
по описанию похоже, что I/O был занят, значит можн...

IO был забит Пг. дефрагментация на никсах - это что-то новенькое.

Warstone
IO был забит Пг. дефрагментация на никсах - это чт...

а причем тут Ось? Файловые системы подвержены фрагментации, может вы имели ввиду ssd/hard?

> Конкретные размеры базы и таблицы, если надо, приведу. Приведите (до и после, за счёт чего "размер базы распух в 2,5 раза"). Вы какую-то очень странную ситуацию описываете, на первый взгляд. > Пг, при удалении колонки на самом деле ее не удаляет На самом деле это metadata operation, т.е. она, по сути, почти ничего не делает и должна выполняться мгновенно (если ей удаётся получить lock) независимо от размера таблицы.

Warstone- Автор вопроса
Yaroslav Schekin
> Конкретные размеры базы и таблицы, если надо, пр...

=> SELECT pg_size_pretty( pg_total_relation_size('...') ); pg_size_pretty ---------------- 13 GB (1 row) => SELECT pg_size_pretty( pg_database_size('...') ); pg_size_pretty ---------------- 159 GB (1 row) В момент перед тушением базы общий размер был около 400Гб

Warstone
=> SELECT pg_size_pretty( pg_total_relation_size('...

А это "до" или "после"? И из этого неясно, за счёт чего база росла...

Warstone- Автор вопроса
Warstone
=> SELECT pg_size_pretty( pg_total_relation_size('...

> В момент перед тушением базы общий размер был около 400Гб Базы, полученный этим же запросом? А за счёт чего, не выявили (если нет — можно только гадать)?

Warstone- Автор вопроса
Yaroslav Schekin
> В момент перед тушением базы общий размер был ок...

Нет. Там мониторинг диска был. Сам запрос никто не думал тогда выполнять. Не до того было

Warstone
Нет. Там мониторинг диска был. Сам запрос никто не...

Может, он просто врёт? ;) Это же самое простое объяснение, на самом деле...

Warstone- Автор вопроса
Yaroslav Schekin
Может, он просто врёт? ;) Это же самое простое объ...

Ну он сейчас показывает те-же объемы. И нет... Там IO дикое было и задержки запросов. То есть не врал.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта