Проблемы с памятью в PostgreSQL 7.4.1

Il'
Дата: 10.06.2004 23:38:09
Собственно есть две проблемы:
1. При запуске сервера PostgreSQL он отъедает большую часть оперативной памяти (всего 512Мб, а он отъедает около 400), но это можно было бы пережить, но при остановке сервера эта память не освобождается и система считает ее занятой. Соответственно если делать рестарт сервера, то после первого же рестарта начинается своппинг т.к. памяти уже не хватает.

2. В БД есть таблица в которой порядка 60 столбцов и 40 тыс. записей
при попытке выбрать даные из этой таблицы или сделать для нее Vacuum analyze выдается сообщение, что система не может выделить память объемом в 4Гб.

Что с этим делать? помогите!!
Sad Spirit
Дата: 11.06.2004 11:45:38
1. С большим трудом верится... Система какая?
2. Судя по симптомам, таблица битая.

Вообще, настоятельно рекомендуется проверить железо, на котором всё это крутится. Обычно такие глюки на ровном месте не появляются.
wbear
Дата: 11.06.2004 11:59:55
вообще то уже давно вышла 7.4.2 с багфиксами
Il'
Дата: 11.06.2004 15:08:09
Sad Spirit
1. С большим трудом верится... Система какая?


Система МСВС 3.0 - это военная разработка на базе Linux Mandrake (Ядро 2.2.0).
Аппаратно - это P IV и 512Mb ОЗУ

Sad Spirit
2. Судя по симптомам, таблица битая.


Как это проверить?

wbear
вообще то уже давно вышла 7.4.2 с багфиксами


К сожалению это мне не поможет, т.к. базу данных я поменять не могу - она сертифицирована и внести в нее изменения - смерти подобно
Sad Spirit
Дата: 11.06.2004 17:34:27
Другими словами: непонятно какое железо, непонятно какая ОС, непонятно какие изменения внесены в код PostgreSQL (сертифицирована...). Что я могу сказать: обратитесь за технической поддержкой к поставщику. :)
eddie
Дата: 11.06.2004 18:00:46
что в postgresql.conf написано?
в частности
shared_buffers
sort_mem
vacuum_mem
Shweik
Дата: 11.06.2004 18:03:18
Попробуй поднять этуже таблу в других условиях
(Железо скорее всего непричем,а вот МСВС
Ну сам понимаешь что тут фиг кто поможет - разве что любители Мандрейка).
8-\
Возможно но маловероятно - бажинка закралась при сборке сервера.
Если есть возможность - поставь на другой винт
скажем фрюшку 4.XX и PG 7.4.1 из сорцов -вероятность 90% что
твоя табла зальется туда из дампа и все будет путем. 8-) Если не зальется - значит битая и нужно смотреть дамп и лезть в него руками. Только я в это слабо верю. Гораздо проще представить что кто-то собирая твое ядро
по выкидывал да поурезал кое-какие опции.
Подобные проблемы с памятью знакомый любитель Дебиана решил после нескольких пересборок ядра.
Хотя создается такое ощущение что у тебя сертифицированно все что установленно. Под страхом трибунала пересобирать ничего нельзя.
8-)
Il'
Дата: 11.06.2004 22:48:45
to SadSpirit
Насчет сертифицировано - поставщики божатся что в версию для сертификации PostgreSQL добавили только патч, позволяющий строить деревья, а больше ничего не меняли.
После общения с ними у меня создалось впечатление, что они вообще не очень хорошо понимают как PG работает.

Проблема с памятью не то чтобы решилась, но в тоже время я локализовал ошибку - она в ОС, там очень криво написан сборщик мусора.

to Shweik
Идея с дампом была неплоха, но у меня не было дампа на текущий момент и я попытался выгрузить данные из таблицы - не получилось (возникла таже ошибка) я так понимаю при выгрузке данных выполняется тот же запрос.
Но затем я решил проблему - создав новую таблицу
create table temp as (select * from table) - что интересно при этом все записи перенеслись без потери и из новой таблицы temp данные стали выбираться корректно. А старую я удалил.
Но за идею с дампом спасибо.

У меня действительно все сертифицировано по самое не могу :), и вносить изменения невозможно. Дело даже не столько в сертификации как таковой, сколько в том, что при пересборке ядра ОС (или PG или других библиотек) мне проделать туже операцию на всех компах, где будут ставится мои приложения - а это порядка 40 объектов по всей стране :) - да и не мое это дело
Sad Spirit
Дата: 12.06.2004 10:33:02
Il'
поставщики божатся что в версию для сертификации PostgreSQL добавили только патч, позволяющий строить деревья, а больше ничего не меняли.

Если это тот патч, который для CONNECT BY, то разработчики почему-то отказались включить его в сервер. Может быть они что-то знали?..
eddie
Дата: 12.06.2004 11:42:38
не похоже?
http://archives.postgresql.org/pgsql-performance/2004-06/msg00125.php