Перейти к основному содержимому

Глава 38. Системные требования

Программное обеспечение ФинГрад состоит из нескольких частей:

  • система управления базами данных (СУБД);
  • веб-приложение с функциями казначейства для работы в браузере;
  • настольное приложение с функциями консолидации для компьютеров с ОС Windows;
  • транспортный сервер для обособленного обмена данными с банками.

Задайте ожидаемые объёмы данных и нагрузку для автоматического расчёта характеристик аппаратного и программного обеспечения, необходимого для установки и использования ФинГрада.

Параметры расчёта

Тип СУБД

Сервер СУБД​

ХарактеристикаТребования
Процессор
3 ядра
Ядра рассчитываются из объёма данных, предела параллелизма СУБД на один запрос и числа одновременно строящих отчёты пользователей. Один OLAP-отчёт обрабатывает порядка T проводок2. Масштабирование производительности (ускорение) ограничено пределом параллелизма p, поэтому на один отчёт полезно не более p ядер, а остальные ядра одновременно обслуживают отчёты разных пользователей.
Ядер на один отчёт:
c=min⁡(p, ⌈Tw⋅t⌉)=min⁡(24, ⌈50 млн5⋅10 млн⌉)=1\mathsf{c} = \min\left(\mathsf{p},\ \left\lceil \dfrac{\mathsf{T}}{\mathsf{w} \cdot \mathsf{t}} \right\rceil\right) = \min\left(\mathsf{24},\ \left\lceil \dfrac{\mathsf{50\,\text{млн}}}{\mathsf{5} \cdot \mathsf{10\,\text{млн}}} \right\rceil\right) = \mathsf{1}
Всего ядер:
C=b+c⋅max⁡(1, (Uw+Ud)⋅u)=2+1⋅max⁡(1, (50+10)⋅0,02)≈3\mathsf{C} = \mathsf{b} + \mathsf{c} \cdot \max\left(\mathsf{1},\ (\mathsf{U_w} + \mathsf{U_d}) \cdot \mathsf{u}\right) = \mathsf{2} + \mathsf{1} \cdot \max\left(\mathsf{1},\ (\mathsf{50} + \mathsf{10}) \cdot \mathsf{0{,}02}\right) \approx \mathsf{3}
Ожидаемое время построения типового отчёта на выделенных ему ядрах:
τ=Tc⋅t=50 млн1⋅10 млн=5 с\tau = \dfrac{\mathsf{T}}{\mathsf{c} \cdot \mathsf{t}} = \dfrac{\mathsf{50\,\text{млн}}}{\mathsf{1} \cdot \mathsf{10\,\text{млн}}} = \mathsf{5\,\text{с}}
c – количество ядер ЦП на один отчёт,
T – количество проводок в БД,
Uw – количество единовременных пользователей web,
Ud – количество единовременных пользователей desktop,
b = 2 – базовые ядра для ОС и самой СУБД,
p = 24 – предел параллелизма на один запрос (MAXDOP),
t = 10 млн – проводок, обрабатываемых одним ядром за секунду,
w = 5 с – целевое время построения отчёта,
u = 0,02 – доля пользователей, одновременно строящих отчёты.
2,2 ГГц
Оперативная память
11 ГБ
4 ГБ+1 ГБ⋅C+500 Б⋅T−Rk+4 КБ⋅Rk=4 ГБ+1 ГБ⋅3+500 Б⋅50 млн−5 млн10+4 КБ⋅5 млн10≈11 ГБ\mathsf{4\,\text{ГБ}} + \mathsf{1\,\text{ГБ}} \cdot \mathsf{C} + \mathsf{500\,\text{Б}} \cdot \dfrac{\mathsf{T} - \mathsf{R}}{\mathsf{k}} + \mathsf{4\,\text{КБ}} \cdot \dfrac{\mathsf{R}}{\mathsf{k}} = \mathsf{4\,\text{ГБ}} + \mathsf{1\,\text{ГБ}} \cdot \mathsf{3} + \mathsf{500\,\text{Б}} \cdot \dfrac{\mathsf{50\,\text{млн}} - \mathsf{5\,\text{млн}}}{\mathsf{10}} + \mathsf{4\,\text{КБ}} \cdot \dfrac{\mathsf{5\,\text{млн}}}{\mathsf{10}} \approx \mathsf{11\,\text{ГБ}}
C – количество ядер ЦП,
T – количество проводок в БД,
R – количество проводок документов казначейства,
k = 10 – коэффициент сжатия в Column store.
Накопитель
27 ГБ
2 ГБ+50 ГБ⋅T100 млн=2+50⋅50 млн100 млн=27 ГБ\mathsf{2\,\text{ГБ}} + \mathsf{50\,\text{ГБ}} \cdot \dfrac{\mathsf{T}}{\mathsf{100\,\text{млн}}} = \mathsf{2} + \mathsf{50} \cdot \dfrac{\mathsf{50\,\text{млн}}}{\mathsf{100\,\text{млн}}} = \mathsf{27\,\text{ГБ}}
T – количество проводок в БД.
SSD (рекомендуется NVMe),
400 тыс. IOPS на чтение,
80 тыс. IOPS на запись.
Для оптимальной работы ФинГрад рекомендуется, чтобы объём свободного места на накопителе был не менее двух размеров БД.
Система управления базами данныхMicrosoft SQL Server 2017 c последними cumulative update и выше
Операционная системаWindows Server 2016 Standard и выше;
РЕД ОС, ALT Linux, ROSA Linux, Astra Linux, Debian, Red Hat, Ubuntu и другие
БезопасностьВсе соединения ФинГрада с базами данных принудительно шифруются, поэтому дополнительного проброса VPN- или SSH-туннелей не требуется.
Скорость соединения по сети100 Мбит/с
Сетевые задержкиНе более 50 мс
Поддержка SQL AzureДа, но не рекомендуется
Поддержка SQL MirroringДа, без ограничений

Веб-сервер​

ХарактеристикаТребования
Процессор
15 ядер
10+Uw10=10+5010=15\mathsf{10} + \dfrac{\mathsf{U_w}}{\mathsf{10}} = \mathsf{10} + \dfrac{\mathsf{50}}{\mathsf{10}} = \mathsf{15}
Uw – количество единовременных пользователей web.
2,2 ГГц
Оперативная память
20 ГБ
10 ГБ+2 ГБ⋅Uw10=10+2⋅5010=20 ГБ\mathsf{10\,\text{ГБ}} + \mathsf{2\,\text{ГБ}} \cdot \dfrac{\mathsf{U_w}}{\mathsf{10}} = \mathsf{10} + \mathsf{2} \cdot \dfrac{\mathsf{50}}{\mathsf{10}} = \mathsf{20\,\text{ГБ}}
Uw – количество единовременных пользователей web.
Накопитель50 ГБ
8 тыс. IOPS на чтение,
5 тыс. IOPS на запись
Операционная системаWindows Server 2016 Standard и выше
Операционная система, клиентДля использования веб-приложения ФинГрада подойдёт любая современная операционная система, поддерживающая актуальные версии браузеров: например, Яндекс Браузер или Google Chrome

Терминальный сервер для настольного приложения​

ХарактеристикаТребования
Процессор
16 ядер
6+1⋅Ud=6+1⋅10=16\mathsf{6} + \mathsf{1} \cdot \mathsf{U_d} = \mathsf{6} + \mathsf{1} \cdot \mathsf{10} = \mathsf{16}
Ud – количество запущенных экземпляров настольного приложения (единовременных пользователей desktop).
2,0 ГГц
Оперативная память
36 ГБ
6 ГБ+3 ГБ⋅Ud=6+3⋅10=36 ГБ\mathsf{6\,\text{ГБ}} + \mathsf{3\,\text{ГБ}} \cdot \mathsf{U_d} = \mathsf{6} + \mathsf{3} \cdot \mathsf{10} = \mathsf{36\,\text{ГБ}}
Ud – количество запущенных экземпляров настольного приложения (единовременных пользователей desktop).
При наличии объёмных справочников памяти может требоваться больше.
Накопитель50 ГБ
8 тыс. IOPS на чтение,
5 тыс. IOPS на запись
Операционная системаWindows Server 2016 Standard и выше

Транспортный сервер​

Транспортный сервер используется при необходимости выделить в инфраструктуре единую защищённую точку обмена данными между ФинГрадом и банками.

ХарактеристикаТребования
Процессор8 ядер
2,0 ГГц
Оперативная память8 ГБ
Накопитель50 ГБ
8 тыс. IOPS на чтение,
5 тыс. IOPS на запись
Операционная системаWindows Server 2016 Standard и выше


Примечания

1 Учитывается количество основных проводок и количество зависимых проводок.

2 Без учёта использования детализации по справочникам.