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>
|