Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / VACUUM FULL ANALIZE длится ну ооочень долго... / 8 сообщений из 8, страница 1 из 1
30.03.2007, 11:16
    #34426831
tier.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
Приветствую, господа. Такая ситуация:
База данных на pg (8.2.3) восстанавливается из архива. После восстановления она занимает на диске 90 Gb (естественно, со всеми индексами и т.д.). После этого она работает месяц и активно используется несколькими приложениями. Данные добавляются и изменяются в больших объемах. autovacuum включен. За месяц размер базы на диске вырастает до 190 Gb. Я решаю сделать VACUUM FULL ANALIZE чтобы немного освободить место и вообще...
VACUUM длится уже около двух суток и конца ему не видно... Вопрос - почему так долго?
Сервер достаточно мощный, и настроен pg вроде бы правильно...
За первые 6 часов работы операции VACUUM FULL ANALIZE размер базы на диске сократился на 8 гиг. За последущие сутки - только на 1 гиг. Загрузка проца постоянно - в пределах 60%. Доступ к базе никто не имеет больше (чтоб никто не подумал, что проблема в этом).
Характеристики сервера:
2 x Intel(R) Xeon(TM) CPU 3.40GHz
памяти - 8 гиг
ОС - CentOS 4.4 с smp-ядром

В /etc/sysctl.conf видим следущее:
kernel.shmmax = 4126146560
kernel.shmall = 4126146560
vm.overcommit_memory=2

В конфиге pg видим:
shared_buffers = 400MB
work_mem = 64MB
maintenance_work_mem = 640MB
max_fsm_pages = 204800
max_fsm_relations = 3000
checkpoint_segments = 64
effective_cache_size = 1024MB
stats_start_collector = on
stats_row_level = on
autovacuum = on

В базе порядка 2000 относительно мелких таблиц и одна, размером где-то 2/3 от всей базы.

Что у меня не так сделано? Почему так долго эта операция выполняется?
Подскажите, кто знает. Спасибо.
...
Рейтинг: 0 / 0
30.03.2007, 11:34
    #34426889
BlackDan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
А свободного места много на диске, где база находится?
А сильно ли большая таблица была дефрагментирована?
Если есть возможность остановки сервера, то я для таких больших таблиц создавал бы дубликат имеющейся таблицы, сливал туда данные из старой, создавал бы нужные индексы и удалял бы старую таблицу.
Если возможности остановки сервера нет, то лучший вариант - часто делатьVACUUM ANALYZE
...
Рейтинг: 0 / 0
30.03.2007, 11:42
    #34426919
tier.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
BlackDanА свободного места много на диске, где база находится?
А сильно ли большая таблица была дефрагментирована?
Если есть возможность остановки сервера, то я для таких больших таблиц создавал бы дубликат имеющейся таблицы, сливал туда данные из старой, создавал бы нужные индексы и удалял бы старую таблицу.
Если возможности остановки сервера нет, то лучший вариант - часто делатьVACUUM ANALYZE

Места свободного 100 гиг на диске.
А по поводу вашего совета делать копию таблицы а старую удалять... по-моему это не дело так извращаться. Должен же вакуум нормально работать...
...
Рейтинг: 0 / 0
30.03.2007, 12:00
    #34426986
BlackDan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
tier.ruА по поводу вашего совета делать копию таблицы а старую удалять... по-моему это не дело так извращаться. Должен же вакуум нормально работать...
Это к вопросу, почему при востановлении таблицы из дампа индексы создаются в последнюю очередь, а не перед заливкой самих данных.
З.Ы.
У меня самого опыта с полным вакуумом таких больших таблиц нет, поэтому очень интересно, чем и когда это закончится ;)
...
Рейтинг: 0 / 0
30.03.2007, 12:44
    #34427176
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
tier.ru
За первые 6 часов работы операции VACUUM FULL ANALIZE размер базы на диске сократился на 8 гиг. За последущие сутки - только на 1 гиг. Загрузка проца постоянно - в пределах 60%. Доступ к базе никто не имеет больше (чтоб никто не подумал, что проблема в этом).
Характеристики сервера:
2 x Intel(R) Xeon(TM) CPU 3.40GHz
памяти - 8 гиг
ОС - CentOS 4.4 с smp-ядром

А чего с винтом?

tier.ru
Что у меня не так сделано? Почему так долго эта операция выполняется?
Подскажите, кто знает. Спасибо.
У меня есть два предположения:
1. Посмотри в сторону файлов WAL, у меня при вакууме "тяжелой" таблице они писались с потрясающей скоростью, и все его 750 метров постоянно перезаписывались :(
2. В принципе не так давно пофиксали какую-то багу по тормозам ВАКУУМА. Подробности, попадает ли этот случай под провило и т.д. - в официальной рассылке постгресов.

А вообще создание таблицы заново и залив туда данных, с пересозданием индексов - это приблизительный алгоритм VACUUM FULL.
...
Рейтинг: 0 / 0
30.03.2007, 14:28
    #34427603
cooluser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
VACUUM FULL VERBOSE

Хотя бы будете видеть что он делает в текущий момент
...
Рейтинг: 0 / 0
02.04.2007, 14:33
    #34431374
jaga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
К сожалению VACUUM FULL VERBOSE выдаст результат, когда этот VACUUM FULL закончиться.
Правельнее вопрос Andrey Daeron "А чего с винтом?".
Хорошо бы SCSI, да еще RAID0.
А мне на винде, правда, здорово помогла дефрагментация винта. Вся обработка почти на четверть ускорилась.
...
Рейтинг: 0 / 0
02.04.2007, 16:35
    #34431789
tier.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VACUUM FULL ANALIZE длится ну ооочень долго...
Уже SCSI, RAID0. 100 Gb свободно.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / VACUUM FULL ANALIZE длится ну ооочень долго... / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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