Повышенный расход оперативной памяти

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
Jenya
Сообщения: 3
Зарегистрирован: 22 мар 2005, 13:26

Повышенный расход оперативной памяти

Сообщение Jenya » 23 мар 2005, 13:31

Доброе время суток.
В процессе работы сервера в течение дня объём памяти (физическая + виртуальная) занятый им достигает 1,8 ГБ. При этом наблюдается AV в FreeIBUDF и при попытке сохранения процедуры - зависание работы с базой. Есть конечно грех, касающийся долговисящих транзакций, но рано или поздно пользователи уходят домой и транзакции завершаются, при этом пока есть какое-либо подключение к базе - память не освобождается. Как только отключается последний пользователь объём занимаемой памяти сразу становится 10 МБ.
Пробовал мероприятия рекомендуемые в разделе статьи ibase.ru, но что-то траблу решить не получается. :(
Подскажите кто может куда копать дальше? как узнать куда расходуется память? как ограничить объём используемой памяти в FB?
Конфигурация:
FB 1.5.2
настройки сервера по умолчанию
при выполнения запроса в IBExpert объём памяти 300 МБ
объём базы 7 ГБ
200000 транзакций в день
Buffers на БД 2048 (впрочем изменеие на ситуацию не влияет)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 23 мар 2005, 14:45

Подскажите кто может куда копать дальше?
переписывать приложения. чтобы не было длинных транзакций, мощных открытых по часу запросов, и т.п.
настройки сервера по умолчанию
изменить настройки по умолчанию.
при выполнения запроса в IBExpert объём памяти 300 МБ
сколько памяти при этом занимает ibexpert? что вообще за запрос, хотя бы схематично?
200000 транзакций в день
не много?

Jenya
Сообщения: 3
Зарегистрирован: 22 мар 2005, 13:26

Сообщение Jenya » 23 мар 2005, 15:35

Да действительно сейчас взят курс в разработке на борьбу с длинными транзакциями, но единственное не совсем понятно - да они длинные, но рано или поздно завершаются, что не сказывается к сожалению на объёме памяти в сторону уменьшения до отключения всех коннектов к базе (в т.ч. тех которые были в других программах, например, ибэксперт). Тут напрашивается решение время от времени отключать подключение к бд, но мне кажется оно не очень красиво, тем более пользователи плотно работают с БД и чтобы все сразу в какойто момент были отключены маловероятно.

По поводу настроек сервера - каким образом их изменить чтобы повлиять на ситуацию? Размер кэша (buffers) пробовал менять правда на БД - без эффекта, более того - он меняется сам как не странно или что-то его меняет помимо настроек. В плане настроек в доке на ИБ 6.0 описан параметр что-то типа маскимального объема используемой оперативной памяти сервером, но я не нашел его аналога в ФБ.

сам ибэксперт занимает 5МБ запрос любой например select * from rdb$database. речь идёт о цифре которая показывается после выполнения запроса в ИБ эксперте в нижней части SQL редактора и насколько я понимаю отражает размер кэша сервера.

200000 цифра реальная, конечно я не могу сказать среди них нет бесполезных или ненужных

Jenya
Сообщения: 3
Зарегистрирован: 22 мар 2005, 13:26

Сообщение Jenya » 23 мар 2005, 15:39

Можно как-нить увидеть как распределилась память?
например столько ушло на кэш, столько на запросы, столько на сортировку, столько на подключенные клиенты или что-то в этом роде

Ответить