Сторінка 1 з 1
Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 15 лютого 2019, 15:21
olexandrn
Добрый день!
Столкнулся с заполнение всей оперативной памяти (12ГБ) на терминальном сервере.
На сервере инсталлирован только Медок 11.00.027
Windows 2012R2, ОЗУ 12ГБ,
База Медка 30ГБ
Сетевая установка, база в режиме Суперсервер, используется ярлык на ezvitnet.exe
Активных пользователей примерно 15
Через некоторое время после запуска севрера, загрузка оперативной памяти доходит до 97% и далее заполняется свап.
Если посмотреть в таскменеджере виндовс то сумманый объем занимаемый программами значительно меньше, примерно 40-50%
С помощью инструмента RAMMap удалось обнаружить причину заполнения памяти.
https://docs.microsoft.com/en-us/sysint ... ads/rammap
- 1.PNG (17.74 Кіб) Переглянуто 6957 разів
- 2.PNG (12.58 Кіб) Переглянуто 6957 разів
Как выяснилось причиной такого поведения ПО является использование флага FILE_FLAG_RANDOM_ACCESS при доступе к файлу БД:
https://support.microsoft.com/en-us/hel ... lag-random
Временное решение:
https://serverfault.com/questions/30217 ... er-2008-r2
Данная проблема решена разработчиком БД начиная с версии 2.1.5
http://tracker.firebirdsql.org/browse/CORE-3791
К сожалению, в медке (11.00.027) используется база версии 2.1.4
=======================
Интересуют следующие вопросы:
- 2. вопрос к разработчику.
Есть ли возможность обновить БД в дистрибутиве?
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 15 лютого 2019, 15:38
Ярослав Заец
olexandrn
Да, Вы можете самостоятельно обновить версию FB до версии 2.1.7, на работу программы это не повлияет, так как эта версия из одной ветки FB.
olexandrn писав: ↑15 лютого 2019, 15:21
2. вопрос к разработчику.
Есть ли возможность обновить БД в дистрибутиве?
Разработчик работает над вопросом обновления версии FB
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 15 лютого 2019, 15:41
olexandrn
Достаточно ли просто заменить файлы в папке
C:\Program Files\Medoc\MedocSRV\Firebird_M
на более новые из архива дистрибутива?
Или необходимо инсталлировать с помощью визарда?
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 15 лютого 2019, 15:50
Ярослав Заец
С официального сайта Firebird Вы можете взять обновленные файлы (dll и exe) версии 2.1.7 и заменить в каталоге программы C:\Program Files\Medoc\MedocSRV\Firebird_M при остановленной службе Firebird.
После замены файлов запустите службу и программа будет работать под управлением версии 2.1.7
В случае инсталляции, можно установить версию 2.1.7 на другой порт и Connectionsetup.exe указать соответствующие настройки подключение Firebird
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 15 лютого 2019, 16:08
olexandrn
По умолчанию устанавливается версия Х32.
Есть ли необходимость устанавливать версию Х64?
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 17 лютого 2019, 18:58
Белокопытов Геннадий
olexandrn
Вы можете установить версию Firebird х32 или х64 в зависимости от технических ресурсов системы и свободной ОЗУ. Версия Firebird х64 будет потреблять больше системных ресурсов. Для программы достаточно использовать Firebird разрядности х32
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 21 лютого 2019, 10:08
olexandrn
Спасибо! Все работает.
Использование памяти нормализовалось.
Стало 4ГБ на 10 активных поьзователей
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 04 березня 2019, 15:09
wadim1c
Была аналогичная проблема. Никто (ни наш дилер, ни те, к кому обращался тут, на форуме) не мог внятно объяснить причины проблемы и методов её решения.
Огромное спасибо за четкие пояснения!! Теперь вместо постоянно занятых 8-10 Гб имеем максимум 2 Гб (это при общем объеме 12 Гб памяти на сервере). Радости нет предела!
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 04 березня 2019, 16:38
Ivanhoe
Правильно ли я вас понял?
Качаем отсюда:
http://sourceforge.net/projects/firebir ... p/download вариант файла "Zip kit for manual/custom installs of Classic or Superserver".
В этом архиве находим все файлы dll и exe во всех папках, и заменяем (при остановленной службе горыныча) все такие файлы в соответствующих папках. И усё?
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 04 березня 2019, 17:54
Medoc Man
Ivanhoe писав: ↑04 березня 2019, 16:38
Правильно ли я вас понял?
Качаем отсюда:
http://sourceforge.net/projects/firebir ... p/download вариант файла "Zip kit for manual/custom installs of Classic or Superserver".
В этом архиве находим все файлы dll и exe во всех папках, и заменяем (при остановленной службе горыныча) все такие файлы в соответствующих папках. И усё?
Полностью всё содержимое архива с заменой файлов.
Затем в firebird.conf переуказать порт на нужный (который был). По-умолчанию, 3050.
Можете сделать бэкап каталога с Firebird перед заменой файлов.
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 04 березня 2019, 18:31
Gevil
Я сделал не много по другому, без обновления файлов Firebird.
Заметил что вся память забивается после автоматического создания бэкапов в медке.
Сделал так, создал батник с перезапуском службы ZvitGrp1. В планировщике заданий сделал запуск этого батника после окончания создания бэкапов в медке. И теперь каждое утро память на сервере не забита и люди могут нормально работать в медке.
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 04 березня 2019, 18:57
Ivanhoe
Gevil писав: ↑04 березня 2019, 18:31
Я сделал не много по другому, без обновления файлов Firebird.
Заметил что вся память забивается после автоматического создания бэкапов в медке.
Сделал так, создал батник с перезапуском службы ZvitGrp1. В планировщике заданий сделал запуск этого батника после окончания создания бэкапов в медке. И теперь каждое утро память на сервере не забита и люди могут нормально работать в медке.
У меня тоже работает по часам батник перезапуска службы, для очистки памяти после утреннего резервного копирования. Иначе утром с памятью просто бяда...
Но дело в том, что пара пользователей в терминальном режиме быстро съедают почти все 8 гиг оперативы сервера, и получается, что это не панацея, и таки надо менять релиз горыныча...
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 04 березня 2019, 19:07
Ivanhoe
Medoc Man писав: ↑04 березня 2019, 17:54
Полностью всё содержимое архива с заменой файлов.
Затем в firebird.conf переуказать порт на нужный (который был). По-умолчанию, 3050.
Можете сделать бэкап каталога с Firebird перед заменой файлов.
Спасибо, камрад! Непременно воспользуюсь Вашим советом!
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 05 березня 2019, 15:07
wadim1c
Medoc Man писав: ↑04 березня 2019, 17:54
Полностью всё содержимое архива с заменой файлов.
Затем в firebird.conf переуказать порт на нужный (который был). По-умолчанию, 3050.
Можете сделать бэкап каталога с Firebird перед заменой файлов.
Я пользовался рекомендациями выше, то есть заменял именно dll и exe - файлы без переуказания портов. Всё (тьфу три раза) работает.
Но спорить о правильности/неправильности того или иного метода обновления не буду, т.к. не силён в вопросе.
Просто констатирую факт.
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 05 березня 2019, 15:12
Белокопытов Геннадий
При замене файлов в каталоге Firbird необходимо обращать внимание на файл конфигурации firebird.conf, в котором и указан порт по которому работает служба Firbird. Если этот файл был заменен, соответственно нужно указать в нем тот порт по которому работает установленная служба Firbird в системе. Для версии 2.1.7 файл firebird.conf можно не заменять.
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 05 березня 2019, 15:13
Medoc Man
wadim1c писав: ↑05 березня 2019, 15:07
Я пользовался рекомендациями выше, то есть заменял именно dll и exe - файлы без переуказания портов. Всё (тьфу три раза) работает.
Но спорить о правильности/неправильности того или иного метода обновления не буду, т.к. не силён в вопросе.
Просто констатирую факт.
Просто если установлено несколько экземпляров M.E.Doc (условно, M.E.Doc #1, M.E.Doc #2, M.E.Doc #3) - то у каждого будет свой отдельный порт (по-умолчанию, 3050, 3051 и 3052 соответственно).
Если Вы решили в M.E.Doc #2 провернуть действия с заменой Firebird - то у него (согласно файла конфигурации) порт станет так же 3050 (стандартный), как и у M.E.Doc #1. А дальше будет неизвестно что: что к чему через что будет подключаться.
По спецификациям, один экземпляр Firebird спокойно может работать сразу с несколькими базами данных (и порт для подключения так же будет один). Но я подобную ситуацию не воспроизводил и утверждать не возьмусь. И рекомендовать, соответственно, тоже.
В Вашем же случае, вероятно, был единый экземпляр M.E.Doc с "дефолтным" портом 3050, поэтому замена файлов Firebird прошла... без ощущений
Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7
Додано: 05 березня 2019, 16:59
wadim1c
Medoc Man писав: ↑05 березня 2019, 15:13
В Вашем же случае, вероятно,
был единый экземпляр M.E.Doc с "дефолтным" портом 3050, поэтому замена файлов Firebird прошла... без ощущений
Именно так