AstraRegul
Релиз 2024.08.31.00
×

4.2.1.1.1. Вычисление значения атрибута MaxPoolMemorySize

 
Для вычисления значения атрибута используется следующая формула:
 
,
где i – отдельный экземпляр Astra.Server, для которого настроено сохранение истории значений сигналов в базы данных данного сервера истории;
ServerTagsCount – количество сигналов, сохраняемых i-м экземпляром Astra.Server;
R – если i-й Astra.Server работает в составе резервной пары, то значение равно 2, иначе - 1;
j – отдельная БД данного сервера истории;
DBCache – размер оперативной памяти, выделенной для j-й базы данных в качестве кеша (параметр PreferredCommonCacheLimit в файле конфигурации).
 
 
Количество сохраняемых сигналов можно посмотреть в приложении Статистика.
 
 
 

Пример

 
Сервер истории управляет двумя базами данных и хранит историю значений для трех экземпляров Astra.Server:
ProcessVals (значение PreferredCommonCacheLimit – 256);
ControlVals (значение PreferredCommonCacheLimit не указано, берем значение по умолчанию - 128).
 
<?xml version="1.0" encoding="utf-8"?>
<Astra.Historian.Server StatPort="3388" DefaultPrimaryDir="c:\Astra.Historian\Databases">
  <tcp-server default-port=4949 idle-sessions-count=1 idle-sessions-timeout=15>
    <server-endpoint host="0.0.0.0" />
  </tcp-server>
  <Bases>
    <Base Alias="ProcessVals" PreferredCommonCacheLimit="256" />
    <Base Alias="ControlVals" />
  </Bases>
</Astra.Historian.Server>
 
Данный сервер истории хранит историю значений для трех экземпляров Astra.Server:
Первый Astra.Server сохраняет значения 15000 сигналов.
Второй Astra.Server сохраняет значения 10000 сигналов и работает в составе резервной пары.
Третий Astra.Server сохраняет значения 7500 сигналов.
 
Для вычисления значения MaxPoolMemory неважно, в какую базу данных сервера истории записывает значения сигналов каждый из экземпляров Astra.Server.
Подставив значения в формулу, получим значение атрибута:
 
MaxPoolMemory = (15000 + 10000*2 + 7500)*1.2*4КБ + (256 + 128)*1МБ = 588 МБ
 
Поскольку значение атрибута должно быть не меньше вычисленного значения, то в файле конфигурации сервера истории можно указать вычисленное значение с округлением вверх.
 
<?xml version="1.0" encoding="utf-8"?>
<Astra.Historian.Server StatPort="3388" DefaultPrimaryDir="c:\Astra.Historian\Databases" MaxPoolMemorySize="600">
  <tcp-server default-port=4949 idle-sessions-count=1 idle-sessions-timeout=15>
    <server-endpoint host="0.0.0.0" />
  </tcp-server>
  <Bases>
    <Base Alias="ProcessVals" PreferredCommonCacheLimit="256" />
    <Base Alias="ControlVals" />
  </Bases>
</Astra.Historian.Server>