Регистрация

Использование памяти

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
Старожил
Аватара пользователя
Сообщения: 507
Зарегистрирован: Чт сен 21, 2006 12:19 am
Откуда: Рига, Латвия

Использование памяти

Сообщение dmikai » Пт май 19, 2017 12:48 pm

Доброго Вам дня, Форумчане

Столкнулся с такой проблемой:
Есть две сессии Progress (Linux, CHUI). Одна подсоединяется через shared-memory, а другая по сервису.
В каждой сесии выполняем один и тот же запрос по абсолютно любой, но большой таблице.
В итоге сессия с использованием подключения по сервису память не скушала, а вот у второй
наблюдается аппетит - и сразу прирост в 130М, и далее не отпускает.

Можно ли этому дать объяснение?

OpenEdge Release 11.6.2.002, Linux 64bit

Старожил
Аватара пользователя
Сообщения: 2871
Зарегистрирован: Ср май 12, 2004 6:03 pm
Откуда: Питер

Re: Использование памяти

Сообщение George » Пн май 22, 2017 8:04 pm

Я не изучал этот вопрос и потому далее идут только мои предположения.

Скорее всего самообслуживающийся клиент при первом обращении к базе подключает к своему адресному пространству (a.k.a. к "памяти") некоторые разделяемые библиотеки. Эта память является разделяемой, т.е. даже если запущена тысяча самообслуживающихся клиентских сессий и адресное пространство каждой сессии после первого обращения к таблице прирастает на 150 MB, то на самом деле свободная память в системе не уменьшится ни на 150 GB (= 1000 * 150 MB), ни даже на 150 MB. Можно стартовать одну сессию, которая напрямую подключается к базе. Еще раз проверить как изменилось адресное пространство этой сессии после обращения к базе. Затем, используя другое логическое имя, подключится к той же базе еще раз. Предполагаю, что запрос, использующий новое логическое имя базы, больше не увеличит "память" сессии поскольку к этой сессии уже подключены нужные разделяемые библиотеки. А можно второй раз подключиться к действительно другой базе. Полагаю, что результат от этого не изменится.

К памяти сессий с удаленным подключением к базам эти разделяемые библиотеки не добавляются потому, что эти библиотеки уже подключены к серверам удаленных клиентов. В этом и состоит смысл разделяемых библиотек - они добавляются в адресное пространство только тех процессов, которым нужен функционал, реализованный в данных библиотеках.

Вернуться в PROGRESS - АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5