Рекомендации для продуктивного контура#
Раздел содержит базовые рекомендации по подготовке продуктивного контура Global ERP. Детальные требования к отказоустойчивости, восстановлению и процедурам переключения приведены в разделе Отказоустойчивость и аварийное восстановление Global ERP.
Отказоустойчивость Kubernetes#
Для продуктивного контура рекомендуется использовать отказоустойчивую конфигурацию Kubernetes. Минимальная
рекомендуемая конфигурация для HA - три узла control-plane.
Использование трех control-plane узлов обеспечивает кворум etcd и сохраняет возможность управления кластером при
отказе одного управляющего узла. Один control-plane узел не обеспечивает отказоустойчивость управляющего слоя и не
рекомендуется для промышленной эксплуатации.
Worker-узлы должны иметь резерв ресурсов для перераспределения прикладной нагрузки при отказе одного или нескольких узлов.
Память JVM и лимиты Kubernetes#
При настройке pod’ов серверов приложений основным параметром расчета RAM является Xmx JVM. Требования к расчету
ресурсов приведены в разделе RAM, настройка ресурсов pod’ов описана в
разделе Шаг 4. Настройте группы ресурсов.
Для продуктивных контуров рекомендуется:
задавать
XmxJVM 32 ГБ для одного pod’а;задавать
requests.memoryблизким к значениюXmx;задавать
limits.memoryна уровне 48 ГБ илиXmx + ~20%для покрытия накладных расходов JVM и процесса контейнера;не занижать
requests.memoryотносительно фактического потребления pod’а;проверять выбранные значения по результатам нагрузочного тестирования и мониторинга JVM-памяти.
Заниженное значение requests.memory приводит к некорректному планированию pod’ов Kubernetes. В этом случае несколько
ресурсоемких pod’ов могут быть размещены на одном узле при наличии свободных узлов в кластере, что под нагрузкой
увеличивает риск OOM, рестартов и eviction.
Квоты Global3#
Квоты задаются в секции <quotas> файла global3.config.xml и ограничивают потребление ресурсов внутри сервера
приложений. Подробное описание параметров приведено в разделах Квоты и
Квоты сервера.
Для продуктивного контура рекомендуется использовать настройки с включенным raiseError="true". При таком режиме
превышение квоты завершается ошибкой, а не только записью в журнал. Это ограничивает выполнение операций, которые могут
привести к чрезмерному потреблению памяти, росту времени отклика или деградации соседних пользовательских сессий.
Рекомендуемая начальная конфигурация:
<quotas>
<server maxOldGenMemory="0" maxEdenSpaceMemory="80%" raiseError="true"/>
<session maxUiCellCount="40M" maxFormCount="10" raiseError="true"/>
<transaction maxTxCellCount="35M" raiseError="true"/>
</quotas>
Значения квот являются стартовой рекомендацией для продуктивного контура. Их изменение допускается после анализа прикладного сценария, результатов нагрузочного тестирования и метрик мониторинга.