LINUX.ORG.RU
ФорумAdmin

zabbix pgsql vacuum

 ,


0

2

Здравствуйте! Разросся zabbix до 100гб погуглил подумал и через sql запросы убрал всё лишнее ( порядка 80% данных ). Далее нужно как я понял провести vacuum базы данных но при попытке vacuumdb --verbose --analyze --dbname=zabbix &> vacuum3.log вакуум не выполняет до конца. Зависает на самых больших таблицах INFO: analyzing «public.history» или INFO: vacuuming «public.history_uint» . А место тем временем подходит к концу. Как это победить?



Последнее исправление: cetjs2 (всего исправлений: 1)

Вакуум выполняется автоматически, если ты конечно ничего там не крутил в конфиге postgres.

anonymous
()

убрал всё лишнее ( порядка 80% данных )

А как ты определил это? Как вычислил что удалил 80% данных?

anonymous
()

Он у тебя не зависает, а долго выполняется. Поставь на ночь, например. Убери analyze, будет быстрее. Автоматический вакуум видимо не успеет тебе всё вычистить до того как место закончится. Если есть железо, то поднимай новый постгрес, заливай туда дамп и подключай новый сервак.

И вот это прочитай, если еще нет

https://postgrespro.ru/docs/postgresql/9.6/sql-vacuum.html

autonomous ★★★★★
()
Ответ на: комментарий от Disabledg

Неделю это сильно. Во время вакуума в io и процессах что-то происходит интересное? Запусти вакуум через psql. И главное без аналайза. Статистику он потом сам соберет, у заббикса там не такая нагрузка, чтобы он это заметил.

Если всё плохо и есть возможность сделать даунтайм на несколько часов, то снимай дамп и запускай новый сервак.

Да, попробуй запустить ваккум при выключенном заббиксе, вообще отключи коннекты для базы, прибей текущие коннекты и включи вакуум, возможно он ожидает освобождение таблицы, но заббикс постоянно что-то туда пишет, отсюда и неделя ожидания. Как разберешься с вакуумом, кури настройки вакуума в postgresql, иначе у тебя всё повторится.

autonomous ★★★★★
()
Ответ на: комментарий от Disabledg

В zabbix исчезли данные за те сроки которые я очищал.

Я не знаю схему базы zabbix, но в общем случае это же не значит что это было 80% _объёма_ базы. Я бы прикинул по таблицам сколько реально удалилось, может быть исчезнувшие данные занимали 1% от всего объёма базы.

anonymous
()
Ответ на: комментарий от Disabledg

Разросся zabbix до 100гб

100 Гб сканировать неделю, это значит скорость 107 374 182 400 байт / 604 800 секунд ~ 170 килобайт в секунду.

Вы точно не меняли настройки по умолчанию? По умолчанию vacuum_cost_delay выключен (стоит ноль) и команда vacuumdb не ограничивается и сканирует со скоростью диска.

Если же у вас такие диски (например это виртуалка), что могут выдать только 170 килобайт в секунду при последовательном чтении, то боюсь тут вам ничем не помочь.

anonymous
()
Ответ на: комментарий от autonomous

Отключил заббикс 05.10 сделал вакуум через psql. Сегодня 09.10 ребут и всё включил.

В логах последняя запись: 2017-10-05 13:33:53 MSK STATEMENT: vacuum (verbose) history_uint;

Как я понимаю оно опять повисло и не прошёл вакуум -_-

Disabledg
() автор топика
Ответ на: комментарий от Disabledg

Херня какая-то, если честно, но я не очень сильный сварщик, издалека сложно судить что там и как. Сними дамп и посмотри сколько он весит, может быть ты думаешь, что зачистил много данных, а на самом деле нет. Еще мысля, вруби максимальный автовакуум и последовательно прочитай нужные тебе таблицы. При обращении будет срабатывать автовакуум на отдельных файлах таблицы. Потом проверь место на диске. Но я бы уже перенакатил бы базу, если проблема критичная.

autonomous ★★★★★
()

Что-то получилось в итоге?

autonomous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.