Skip to main content

Обзор ресурсов

Yahont Lite

Yahont Lite в базовом режиме использует менее 1 ГБ памяти. Использование диска и памяти растёт с числом файлов, загружаемых пользователями в систему, так как в режиме Lite файлы хранит PostgreSQL.

Yahont Standard

OpenSearch включает блокировку индексов только для чтения, когда использование диска достигает порога flood stage (по умолчанию 95 %), что фактически блокирует все записи. Следите за использованием диска и планируйте ёмкость соответственно.

Локальное развёртывание (Docker)

Ресурсами, доступными Docker, можно управлять в разделе Resources меню настроек Docker Desktop.
Часто старые неиспользуемые образы Docker занимают заметное место на диске. Чтобы очистить неиспользуемые образы, выполните docker image prune.

Облачные провайдеры (AWS, GCP и др.)

Для небольших и средних развёртываний мы рекомендуем развернуть Yahont на одном инстансе у выбранного вами облачного провайдера. При оценке инстанса ориентируйтесь на рекомендуемые ресурсы из таблицы выше.

Yahont Lite

Yahont Standard

Ресурсы по контейнерам (Standard)

Docker Compose из репозитория не задаёт лимиты ресурсов контейнеров. Значения ниже — ориентир для планирования хоста.
Если вы используете облачные модели эмбеддинга (например, OpenAI, Cohere и т. д.) вместо локально размещённых, indexing_model_server и inference_model_server будут использовать значительно меньше памяти.

Ресурсы по контейнерам (Lite)

Docker Compose Lite запускает пять сервисов. Файловое хранилище, данные кэша и сессии используют PostgreSQL.
Использование памяти в режиме Lite растёт с числом файлов, загруженных пользователями, так как PostgreSQL обрабатывает хранение файлов, кэширование и управление сессиями. Интерпретатор кода может использовать дополнительные ресурсы при выполнении кода. Подробности режима Lite — в конфигурации.

Как масштабируются требования к ресурсам

Основной фактор требований к ресурсам в режиме Standard — число проиндексированных документов. Это в первую очередь влияет на поисковый индекс (OpenSearch), который отвечает за хранение документов и обработку поисковых запросов.

Память OpenSearch

Память OpenSearch делится примерно поровну между кучей JVM и файловым кэшем ОС. Обе части критичны — куча обрабатывает индексацию и поиск, а файловый кэш держит в памяти часто используемые сегменты индекса для быстрого чтения. Основные правила размера кучи JVM:
  • Задайте Xms и Xmx равными 50 % доступной ОЗУ (остальные 50 % идут на ОС и файловый кэш)
  • Никогда не превышайте кучу в 32 ГБ — выше этого Java отключает сжатые указатели обычных объектов, что вызывает значительное падение производительности

Накладные расходы хранилища

OpenSearch добавляет накладные расходы к исходным данным. Формула хранения на диске:
Множитель 1,45 учитывает накладные расходы индексации (~10 %), зарезервированное место Linux (~5 %) и внутренние накладные расходы OpenSearch (~20 %), а также запас.
По умолчанию Yahont использует 0 реплик для одноузловых развёртываний, поэтому хранилище занимает примерно 1,45× размера исходных данных.

Рекомендации по масштабированию

Требования OpenSearch к ресурсам растут линейно с объёмом проиндексированных данных. Точное соотношение зависит от размера развёртывания — большие распределённые кластеры эффективнее в расчёте на ГБ, чем одноузловые развёртывания, из-за фиксированных накладных расходов на узел (управление кластером, сборка мусора, слияние сегментов). Отраслевые рекомендации для больших кластеров предполагают соотношение памяти к данным около 1:16 для нагрузок с интенсивным поиском. Однако для одноузловых развёртываний, типичных для самостоятельного размещения Yahont, фиксированные накладные расходы на узел составляют гораздо большую долю общих ресурсов. По нашему опыту, для одноузловых развёртываний и небольших кластеров мы рекомендуем следующее: Стоимость на ГБ снижается при большем масштабе, потому что фиксированные базовые накладные расходы распределяются. В очень больших масштабах рассмотрите выделенный кластер OpenSearch или управляемый сервис. Другие факторы, которые могут влиять на требования к ресурсам:
  • Модель эмбеддинга и размерность векторов
  • Включены ли квантизация и снижение размерности
  • Пропускная способность запросов и параллелизм

Пример расчёта ресурсов

Для развёртывания с 10 ГБ текстового содержимого вашему компоненту opensearch потребуется:
  • Память: 4 (базовая) + 10 × 1,5 = 19 ГБ
  • CPU: 2 (базовый) + 10 × 0,25 = 4,5 ядра
При развёртывании на одном инстансе это будет сверх базовых требований. В целом это даст
= 9 CPU и >= 35 ГБ памяти.
С такими требованиями подойдёт инстанс EC2 m7g.2xlarge или c5.4xlarge.

Дальнейшие шаги

Руководство: локальное развёртывание Yahont

Разверните Yahont локально с помощью Docker.

Yahont за обратным прокси с HTTPS

Публикация Yahont на сервере с публичным адресом: Nginx и сертификаты Let’s Encrypt.