> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yahont.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ресурсы

> Требования к ресурсам для развёртывания Yahont

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

### Yahont Lite

| Ресурс | Минимум | Рекомендуется |
| - | - | - |
| CPU | 2 vCPU | 4 vCPU |
| ОЗУ | 2 ГБ | 4 ГБ |
| Диск | 10 ГБ | 50 ГБ |

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

### Yahont Standard

| Ресурс | Минимум | Рекомендуется |
| - | - | - |
| CPU | 4 vCPU | 8+ vCPU |
| ОЗУ | 10 ГБ | 16+ ГБ |
| Диск | 32 ГБ + \~2,5x проиндексированных данных | 500 ГБ для организаций \<5000 пользователей |

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

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

Ресурсами, доступными Docker, можно управлять в разделе **Resources** меню настроек Docker Desktop.

> [!NOTE]
>
> Часто старые неиспользуемые образы Docker занимают заметное место на диске. Чтобы очистить неиспользуемые образы,
> выполните `docker image prune`.

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

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

При оценке инстанса ориентируйтесь на рекомендуемые ресурсы из таблицы выше.

### Yahont Lite

| Провайдер | Рекомендуемый тип инстанса |
| - | - |
| AWS | `t3.medium` |
| GCP | `e2-medium` |
| Azure | `B2s` |

### Yahont Standard

| Провайдер | Рекомендуемый тип инстанса |
| - | - |
| AWS | `m7g.xlarge` |
| GCP | `e2-standard-4` или `e2-standard-8` |
| Azure | `D4s_v3` |
| DigitalOcean | Соответствие рекомендуемым ресурсам из таблицы выше |

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

Docker Compose из репозитория не задаёт лимиты ресурсов контейнеров. Значения ниже — ориентир для планирования хоста.

| Компонент | CPU | Память |
| - | - | - |
| `api_server` | 1 | 2 Gi |
| `background` | 2 | 8 Gi |
| `indexing_model_server` | 2 | 4 Gi |
| `inference_model_server` | 2 | 4 Gi |
| `postgres` | 2 | 2 Gi |
| `opensearch` | 2 | 4 Gi |
| `nginx` | 250m (1/4) | 128 Mi |

> [!NOTE]
>
> Если вы используете облачные модели эмбеддинга (например, OpenAI, Cohere и т. д.) вместо локально размещённых,
> `indexing_model_server` и `inference_model_server` будут использовать значительно меньше памяти.

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

Docker Compose Lite запускает пять сервисов. Файловое хранилище, данные кэша и сессии используют PostgreSQL.

| Компонент | CPU | Память |
| - | - | - |
| `api_server` | 1 | 1 Gi |
| `web_server` | 250m (1/4) | 512 Mi |
| `postgres` | 1 | 1 Gi |
| `nginx` | 250m (1/4) | 128 Mi |
| `code-interpreter` | 100m | 512 Mi |

> [!NOTE]
>
> Использование памяти в режиме Lite растёт с числом файлов, загруженных пользователями,
> так как PostgreSQL обрабатывает хранение файлов, кэширование и управление сессиями.
> Интерпретатор кода может использовать дополнительные ресурсы при выполнении кода.
> Подробности режима Lite — в [конфигурации](/deployment/configuration/configuration#onyx-lite).

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

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

### Память OpenSearch

Память OpenSearch делится примерно поровну между кучей JVM и файловым кэшем ОС.
Обе части критичны — куча обрабатывает индексацию и поиск,
а файловый кэш держит в памяти часто используемые сегменты индекса для быстрого чтения.

Основные правила размера кучи JVM:

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

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

OpenSearch добавляет накладные расходы к исходным данным. Формула хранения на диске:

```
Storage = Source data × (1 + replicas) × 1.45
```

Множитель 1,45 учитывает накладные расходы индексации (\~10 %), зарезервированное место Linux (\~5 %)
и внутренние накладные расходы OpenSearch (\~20 %), а также запас.

> [!NOTE]
>
> По умолчанию Yahont использует 0 реплик для одноузловых развёртываний,
> поэтому хранилище занимает примерно **1,45× размера исходных данных**.

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

Требования OpenSearch к ресурсам растут линейно с объёмом проиндексированных данных.
Точное соотношение зависит от размера развёртывания — большие распределённые кластеры эффективнее в расчёте на ГБ,
чем одноузловые развёртывания, из-за фиксированных накладных расходов на узел (управление кластером, сборка мусора,
слияние сегментов).

Отраслевые рекомендации для больших кластеров предполагают соотношение памяти к данным около 1:16 для нагрузок с
интенсивным поиском. Однако для **одноузловых развёртываний, типичных для самостоятельного размещения Yahont**,
фиксированные накладные расходы на узел составляют гораздо большую долю общих ресурсов.

По нашему опыту, для одноузловых развёртываний и небольших кластеров мы рекомендуем следующее:

| Масштаб | Память на 1 ГБ исходных документов | CPU на 1 ГБ исходных документов |
| - | - | - |
| Малый (\< 5 ГБ) | \~2 ГБ | \~0,25 CPU |
| Средний (5–50 ГБ) | \~1,5 ГБ | \~0,25 CPU |
| Большой (50+ ГБ) | \~1 ГБ | \~0,2 CPU |

Стоимость на ГБ снижается при большем масштабе, потому что фиксированные базовые накладные расходы распределяются.
В очень больших масштабах рассмотрите выделенный кластер OpenSearch или управляемый сервис.

Другие факторы, которые могут влиять на требования к ресурсам:

* Модель эмбеддинга и размерность векторов
* Включены ли квантизация и снижение размерности
* Пропускная способность запросов и параллелизм

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

Для развёртывания с 10 ГБ текстового содержимого вашему компоненту `opensearch` потребуется:

* Память: 4 (базовая) + 10 × 1,5 = 19 ГБ
* CPU: 2 (базовый) + 10 × 0,25 = 4,5 ядра

При развёртывании на одном инстансе это будет *сверх* базовых требований. В целом это даст

> \= 9 CPU и >= 35 ГБ памяти.

С такими требованиями подойдёт инстанс EC2 `m7g.2xlarge` или `c5.4xlarge`.

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

> **[Руководство: локальное развёртывание Yahont](/deployment/local/docker)**
>
> Разверните Yahont локально с помощью Docker.

> **[Yahont за обратным прокси с HTTPS](/deployment/production/reverse_proxy)**
>
> Публикация Yahont на сервере с публичным адресом: Nginx и сертификаты Let's Encrypt.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.