Сайзинг серверов для платформы Optimacros: техническое руководство
Сайзинг инфраструктуры для размещения платформы Optimacros в on-premise или частном облаке — ключевая задача на этапе проектирования архитектуры. Правильно выполненный расчёт позволяет обеспечить необходимую производительность, масштабируемость и отказоустойчивость.
1. Подход к сайзингу в Optimacros
Платформа работает по in-memory архитектуре. Все расчёты и манипуляции с данными выполняются в оперативной памяти. Это означает, что основная нагрузка ложится на:
- оперативную память (RAM);
- процессорные ресурсы (CPU);
- дисковую систему (для хранения и логирования).
Кроме того, важную роль играет пропускная способность сети при обмене с внешними ИС.
2. Основные параметры для расчёта
Обязательные входные данные:
- Количество одновременно активных пользователей.
- Объём хранимых данных: количество мультикубов, ячеек, справочников.
- Сложность расчётной логики: наличие зависимостей, вложенных формул, use case'ов с итерациями.
- Частота обновления данных (ETL/интеграции).
- Наличие фоновых задач (например, агрегирование, экспорт, публикации отчётов).
3. Базовые рекомендации по конфигурации
RAM:
- Платформа требует 8 байт на каждую активную ячейку.
- Рекомендуемый запас памяти — двукратный от общего расчётного объёма, чтобы избежать проблем с фоновыми задачами и нагрузкой от одновременных пользователей.
Пример расчёта:
30 млн ячеек × 8 байт = 240 МБ
Учитывая буфер и резервы: 240 МБ × 2 = 480 МБ (округлённо 1 ГБ RAM)
На практике модели среднего размера (100–200 млн ячеек) требуют от 8 до 32 ГБ RAM, крупные инсталляции — до 128–256 ГБ.
CPU:
- Минимум — 4 vCPU, желательно с высокой тактовой частотой (3.0+ GHz).
- На каждое ядро желательно не более 10 активных пользователей.
- Расчётные блоки и ETL требуют мультипоточности: используйте CPU с поддержкой HyperThreading.
Disk:
- SSD обязательно. IOPS критично для логирования, обновлений и экспорта.
-
Объём хранилища рассчитывается как:
- 3× объём справочников и загрузок;
- 1× объём логов (журналирование задач, событий);
- 1× резерв под бэкапы.
Network:
- Пропускная способность между сервером и корпоративной сетью — не менее 1 Гбит/с.
- При использовании внешнего хранилища (NAS/SAN) — поддержка NFS или SMB с низкой латентностью.
4. Варианты развертывания
|
Формат |
Преимущества |
Технические требования |
|
On-premise |
Полный контроль, работа в замкнутом контуре |
Доступ к физическим серверам, гипервизорам, бэкап-системам |
|
Частное облако |
Централизованное управление |
Поддержка VLAN, VPN, резервирование ресурсов |
|
Публичное облако |
Гибкость масштабирования |
Совместимость с AWS, Yandex Cloud, Azure, OpenStack |
5. Пример конфигурации для 50 пользователей и 100 млн ячеек
- RAM: 32 ГБ ECC
- CPU: 8 vCPU (Xeon или AMD EPYC)
- Disk: SSD 512 ГБ
- OS: Linux Ubuntu 20.04 LTS / Windows Server 2019
- DB: PostgreSQL или MS SQL (в отдельном контуре при интеграции)
6. Рекомендации по отказоустойчивости и мониторингу
- Используйте кластерную топологию для HA (active-passive).
- Настройте ежедневные бэкапы с резервом минимум на 7 дней.
-
Разверните систему мониторинга (Zabbix, Grafana, Prometheus) для отслеживания:
- загрузки памяти и CPU;
- состояния ETL-задач;
- ошибок логики и формул;
- логов доступа и безопасности.
7. Частые ошибки при сайзинге
- Игнорирование объёма справочников: они занимают до 30% от общего объёма модели.
- Недооценка роли фона: агрегации, публикации и экспорты тоже требуют ресурсов.
- Отсутствие запаса под пиковую нагрузку (доступ всех пользователей + ETL + расчет).
- Использование HDD или медленного сетевого доступа к хранилищу.
Заключение
Сайзинг серверов для Optimacros — это не просто подбор по числу пользователей. Необходимо учитывать специфику in-memory обработки, интенсивность расчётов, работу фоновых процессов и активность интеграционных потоков. Правильно выполненный расчёт гарантирует стабильную работу, высокую производительность и масштабируемость модели IBP-планирования.
Для сложных кейсов рекомендуется проводить нагрузочное тестирование и использовать отчёты о загрузке ресурсов в пилотных стендах.




