Skip to content
2.12.0

Масштабирование ​

Как EVA растёт под нагрузкой: вертикально за счёт ёмкости рантайма и горизонтально за счёт реплик. Что общее между репликами и какие ограничения нужно учитывать.

Что ограничивает нагрузку ​

РесурсЧем управляется
Одновременные ходы чатаЁмкость рантайма: процессы, сессии на процесс, очередь
Навыки пакетовЧисло параллельных capability-isolate
Фоновые сервисыЧисло одновременно работающих фоновых сервисов
Скорость моделейЛимиты провайдера или шлюза моделей
Тяжёлая обработка документов и аудиоРесурсы сервисов экосистемы, а не EVA

EVA сама не выполняет OCR, индексацию и расшифровку. Эта нагрузка лежит на отдельных сервисах и масштабируется вместе с ними.

Вертикально ​

Начните с ёмкости рантайма в Админ → Рантайм. Параметры применяются без перезапуска.

  • Число прогретых слотов равно произведению Макс. процессов сессий на Сессий на процесс.
  • Каждый процесс воркера держит соединения MCP своих чатов, поэтому память растёт с числом процессов.
  • Если пользователи часто видят «Ожидание свободного слота», увеличьте слоты или ресурсы пода.

Горизонтально ​

Несколько подов с одним образом за балансировщиком.

ЧтоКак настроить
БазаОдна PostgreSQL на все реплики
Том данныхОдин том ReadWriteMany на /app/apps/api/.data для всех реплик
Планировщик агентовВключён только на одной реплике. На остальных AGENT_SCHEDULER_INTERVAL_MS=0, иначе расписания сработают несколько раз
ЁмкостьПолитика хранится в базе и одинакова для всех. Общая ёмкость равна ёмкости одной реплики, умноженной на число реплик
БалансировщикПривязка сессии к поду, чтобы поток ответа и повторное подключение шли к той реплике, где выполняется ход

Ограничения ​

  • Ход чата выполняется в Runtime той реплики, которая его приняла. Чат закрепляется за воркером этой реплики, пока действует аренда.
  • При старте каждая реплика восстанавливает фоновые сервисы в своём Package-pool. Фоновые сервисы, которые хранят состояние в рабочей папке или сами ходят во внешние системы по таймеру, при нескольких репликах будут работать в нескольких экземплярах. Для таких сервисов держите отдельную реплику или проектируйте их с учётом параллельной работы.

Сервисы экосистемы ​

Каждый сервис масштабируется отдельно. EVA обращается к ним по одному адресу MCP, поэтому за адресом может стоять как один под, так и несколько, если сервис это поддерживает. Подробнее: Развёртывание сервисов.

Документация экосистемы EVA 2.1