Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Обговорення питань, пов'язаних з функціонуванням програми
Відповісти
olexandrn
Повідомлень: 4
З нами з: 15 лютого 2019, 11:35

Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення olexandrn » 15 лютого 2019, 15:21

Добрый день!
Столкнулся с заполнение всей оперативной памяти (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
1.PNG (17.74 Кіб) Переглянуто 6897 разів
2.PNG
2.PNG (12.58 Кіб) Переглянуто 6897 разів
Как выяснилось причиной такого поведения ПО является использование флага 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

=======================
Интересуют следующие вопросы:
  • 1. Можно ли самому обновить версию БД до 2.1.7 (последняя версия этой ветки)
    и не повлияет ли это на работу Медка?
    https://firebirdsql.org/en/firebird-2-1/
  • 2. вопрос к разработчику.
    Есть ли возможность обновить БД в дистрибутиве?

Ярослав Заец
Повідомлень: 1324
З нами з: 19 березня 2014, 11:22

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Ярослав Заец » 15 лютого 2019, 15:38

olexandrn
olexandrn писав:
15 лютого 2019, 15:21
1. Можно ли самому обновить версию БД до 2.1.7 (последняя версия этой ветки)
и не повлияет ли это на работу Медка?
https://firebirdsql.org/en/firebird-2-1/
Да, Вы можете самостоятельно обновить версию FB до версии 2.1.7, на работу программы это не повлияет, так как эта версия из одной ветки FB.
olexandrn писав:
15 лютого 2019, 15:21
2. вопрос к разработчику.
Есть ли возможность обновить БД в дистрибутиве?
Разработчик работает над вопросом обновления версии FB

olexandrn
Повідомлень: 4
З нами з: 15 лютого 2019, 11:35

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення olexandrn » 15 лютого 2019, 15:41

Достаточно ли просто заменить файлы в папке
C:\Program Files\Medoc\MedocSRV\Firebird_M
на более новые из архива дистрибутива?
Или необходимо инсталлировать с помощью визарда?

Ярослав Заец
Повідомлень: 1324
З нами з: 19 березня 2014, 11:22

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

olexandrn
Повідомлень: 4
З нами з: 15 лютого 2019, 11:35

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення olexandrn » 15 лютого 2019, 16:08

По умолчанию устанавливается версия Х32.
Есть ли необходимость устанавливать версию Х64?

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Белокопытов Геннадий » 17 лютого 2019, 18:58

olexandrn
Вы можете установить версию Firebird х32 или х64 в зависимости от технических ресурсов системы и свободной ОЗУ. Версия Firebird х64 будет потреблять больше системных ресурсов. Для программы достаточно использовать Firebird разрядности х32

olexandrn
Повідомлень: 4
З нами з: 15 лютого 2019, 11:35

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення olexandrn » 21 лютого 2019, 10:08

Спасибо! Все работает.
Использование памяти нормализовалось.
Стало 4ГБ на 10 активных поьзователей

wadim1c
Повідомлень: 116
З нами з: 06 серпня 2013, 14:21
Звідки: Україна, Одеса

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення wadim1c » 04 березня 2019, 15:09

Была аналогичная проблема. Никто (ни наш дилер, ни те, к кому обращался тут, на форуме) не мог внятно объяснить причины проблемы и методов её решения.
Огромное спасибо за четкие пояснения!! Теперь вместо постоянно занятых 8-10 Гб имеем максимум 2 Гб (это при общем объеме 12 Гб памяти на сервере). Радости нет предела! 8-)

Ivanhoe
Повідомлень: 497
З нами з: 16 березня 2016, 17:29

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Ivanhoe » 04 березня 2019, 16:38

Правильно ли я вас понял?

Качаем отсюда:
http://sourceforge.net/projects/firebir ... p/download вариант файла "Zip kit for manual/custom installs of Classic or Superserver".

В этом архиве находим все файлы dll и exe во всех папках, и заменяем (при остановленной службе горыныча) все такие файлы в соответствующих папках. И усё?
«Чтобы правильно задать вопрос, нужно знать большую часть ответа». Роберт Шекли

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Medoc Man » 04 березня 2019, 17:54

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 перед заменой файлов.
Человек-волшебник
Людина-чарівник
Wizard man

Gevil
Повідомлень: 18
З нами з: 05 лютого 2018, 10:49

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Gevil » 04 березня 2019, 18:31

Я сделал не много по другому, без обновления файлов Firebird.

Заметил что вся память забивается после автоматического создания бэкапов в медке.

Сделал так, создал батник с перезапуском службы ZvitGrp1. В планировщике заданий сделал запуск этого батника после окончания создания бэкапов в медке. И теперь каждое утро память на сервере не забита и люди могут нормально работать в медке.

Ivanhoe
Повідомлень: 497
З нами з: 16 березня 2016, 17:29

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Ivanhoe » 04 березня 2019, 18:57

Gevil писав:
04 березня 2019, 18:31
Я сделал не много по другому, без обновления файлов Firebird.

Заметил что вся память забивается после автоматического создания бэкапов в медке.

Сделал так, создал батник с перезапуском службы ZvitGrp1. В планировщике заданий сделал запуск этого батника после окончания создания бэкапов в медке. И теперь каждое утро память на сервере не забита и люди могут нормально работать в медке.
У меня тоже работает по часам батник перезапуска службы, для очистки памяти после утреннего резервного копирования. Иначе утром с памятью просто бяда...

Но дело в том, что пара пользователей в терминальном режиме быстро съедают почти все 8 гиг оперативы сервера, и получается, что это не панацея, и таки надо менять релиз горыныча...
«Чтобы правильно задать вопрос, нужно знать большую часть ответа». Роберт Шекли

Ivanhoe
Повідомлень: 497
З нами з: 16 березня 2016, 17:29

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Ivanhoe » 04 березня 2019, 19:07

Medoc Man писав:
04 березня 2019, 17:54
Полностью всё содержимое архива с заменой файлов.
Затем в firebird.conf переуказать порт на нужный (который был). По-умолчанию, 3050.
Можете сделать бэкап каталога с Firebird перед заменой файлов.
Спасибо, камрад! Непременно воспользуюсь Вашим советом!
«Чтобы правильно задать вопрос, нужно знать большую часть ответа». Роберт Шекли

wadim1c
Повідомлень: 116
З нами з: 06 серпня 2013, 14:21
Звідки: Україна, Одеса

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення wadim1c » 05 березня 2019, 15:07

Medoc Man писав:
04 березня 2019, 17:54

Полностью всё содержимое архива с заменой файлов.
Затем в firebird.conf переуказать порт на нужный (который был). По-умолчанию, 3050.
Можете сделать бэкап каталога с Firebird перед заменой файлов.
Я пользовался рекомендациями выше, то есть заменял именно dll и exe - файлы без переуказания портов. Всё (тьфу три раза) работает.
Но спорить о правильности/неправильности того или иного метода обновления не буду, т.к. не силён в вопросе.
Просто констатирую факт.

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Белокопытов Геннадий » 05 березня 2019, 15:12

При замене файлов в каталоге Firbird необходимо обращать внимание на файл конфигурации firebird.conf, в котором и указан порт по которому работает служба Firbird. Если этот файл был заменен, соответственно нужно указать в нем тот порт по которому работает установленная служба Firbird в системе. Для версии 2.1.7 файл firebird.conf можно не заменять.

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення Medoc Man » 05 березня 2019, 15:13

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 прошла... без ощущений ;)
Человек-волшебник
Людина-чарівник
Wizard man

wadim1c
Повідомлень: 116
З нами з: 06 серпня 2013, 14:21
Звідки: Україна, Одеса

Re: Загрузка всей оперативной памяти (12ГБ). Терминальный сервер. Большая БД. Обновление Firebird до 2.1.7

Повідомлення wadim1c » 05 березня 2019, 16:59

Medoc Man писав:
05 березня 2019, 15:13
В Вашем же случае, вероятно, был единый экземпляр M.E.Doc с "дефолтным" портом 3050, поэтому замена файлов Firebird прошла... без ощущений ;)
Именно так :)

Відповісти

Повернутись до “Помилки у роботі програми”