[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for Apache Spark™](../index.md) > [Концепции](index.md) > Автоматическое масштабирование

# Автоматическое масштабирование в Yandex Managed Service for Apache Spark™

*Автоматическое масштабирование* — это изменение количества хостов в кластере Apache Spark™ в зависимости от текущей нагрузки.

Пул хостов для драйверов и пул хостов для исполнителей масштабируются независимо друг от друга:

* Если для запуска нового приложения, т. е. нового драйвера, не хватает свободных ядер или памяти, сервис Yandex Managed Service for Apache Spark™ запускает новый хост в пуле хостов для драйверов. Если число запущенных приложений снижается и в пуле хостов для драйверов появляется простаивающий хост, такой хост удаляется.

* Если для размещения всех исполнителей каждого запущенного приложения не хватает свободных ядер или свободной памяти, сервис Yandex Managed Service for Apache Spark™ запускает новые хосты в пуле хостов для исполнителей. Если число запущенных исполнителей снижается и в пуле хостов для исполнителей появляется простаивающий хост, такой хост удаляется.

Преимущества автоматического масштабирования:
* Кластер становится более производительным при запуске требовательных задач, при этом в моменты простоя лишние хосты удаляются, что снижает плату за них.
* Время выполнения отдельной задачи меньше зависит от количества одновременно запущенных задач.
* Динамическая аллокация становится более эффективной: пул хостов для исполнителей подстраивается под изменяющиеся потребности приложений.

## Управление автоматическим масштабированием {#settings}

Включить и выключить автоматическое масштабирование каждого из двух пулов хостов можно при [создании](../operations/cluster-create.md) и [изменении](../operations/cluster-update.md) кластера Apache Spark™.

Для каждого пула хостов можно задать диапазон значений, в котором будет изменяться число хостов в нем:

* Минимальное число — не меньше 0.
* Максимальное число — не больше 100 и не меньше, чем минимальное число.

На что влияет минимальное число хостов в пуле:

* Чем больше минимальное число хостов в пуле для драйверов, тем больше однотипных приложений можно запускать параллельно, не дожидаясь запуска дополнительных хостов.
* Чем больше минимальное число хостов в пуле для исполнителей, тем большую нагрузку можно направлять на кластер, не дожидаясь запуска дополнительных хостов.
* С ростом минимального числа хостов в пулах растет плата за кластер при простое и низкой нагрузке.

На что влияет максимальное число хостов в пуле:

* Чем больше максимальное число хостов в пуле для драйверов, тем больше однотипных приложений можно запустить параллельно.
* Чем больше максимальное число хостов в пуле для исполнителей, тем выше максимальная производительность кластера.
* С ростом максимального числа хостов в пулах повышается плата за кластер при максимальной нагрузке.

## Рекомендации по выбору параметров автоматического масштабирования {#recommendations}

Выбор параметров зависит от конкретного сценария использования кластера, значения в таблице ориентировочные.

На число однотипных заданий, которые можно запустить на кластере параллельно, и на скорость обработки заданий влияют:
* число хостов в каждом пуле и их класс,
* параметры каждого задания,
* объем зарезервированных под внутренние нужды ресурсов кластера,
* затраты времени на планирование процессов,
* затраты времени на масштабирование пулов,
* использование Shuffle-операций.

| Сценарий          | Число хостов для драйверов | Число хостов для исполнителей | Комментарий |
|-------------------|----------------------------|-------------------------------|-------------|
| Короткоживущие пакетные задания, скорость выполнения не критична | Минимальное — `0`. Максимальное — `1`. | Минимальное — `0`. Максимальное — согласно бюджету. | Такие значения параметров позволят уменьшить плату за кластер при длительных простоях, однако при запуске задания потребуется время на запуск хостов. |
| Короткоживущие пакетные задания, скорость выполнения критична | Фиксированное — `1`. | Минимальное — `0`. Максимальное — согласно бюджету. | Такие значения параметров позволят избежать задержек из-за запуска хостов при старте. |
|  Длительные пакетные задания с интенсивным использованием Shuffle-операций | Минимальное — `1`. Максимальное — согласно целевым метрикам вашего сервиса. | Минимальное — от `2` до `5`. Максимальное — согласно бюджету и целевым метрикам вашего сервиса. | Такие значения параметров позволят избежать чрезмерного «сжатия» пула хостов для исполнителей при снижении нагрузки между стадиями и затрат времени на повторные увеличения пула. |
| Эксплуатация общего кластера несколькими командами | Минимальное — согласно максимальному числу параллельных заданий. Максимальное — согласно бюджету и целевым метрикам вашего сервиса. | Минимальное — от `2` до `5`. Максимальное — согласно бюджету и целевым метрикам вашего сервиса. | Такие значения параметров позволят избежать задержек из-за запуска хостов при старте при совместном использовании всеми командами. |