---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/user-guide/data-processing/operations/cluster-throttlers.md
  - https://ytsaurus.tech/docs/ru/user-guide/data-processing/operations/cluster-throttlers.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

<!-- source: ru/_includes/user-guide/data-processing/operations/cluster-throttlers.md -->
# Квотирование межкластерной сетевой полосы

Некоторые операции YTsaurus читают данные с других кластеров. Например, операция [RemoteCopy](https://ytsaurus.tech/docs/ru/user-guide/data-processing/operations/remote-copy.md) копирует данные с одного кластера на другой. Операции MapReduce также могут читать входные таблицы с других кластеров через атрибут [cluster](https://ytsaurus.tech/docs/ru/user-guide/storage/ypath.md#rich_ypath_prefix) в YPath. Такие операции называются операциями с **удалённым чтением**.

Для контроля нагрузки на сетевые каналы между кластерами в YTsaurus реализован механизм квотирования межкластерной сетевой полосы на основе **распределённых тротлеров** (cluster throttlers). Подробнее об устройстве и настройке механизма см. в разделе [Настройка квотирования межкластерной сетевой полосы](https://ytsaurus.tech/docs/ru/admin-guide/cluster-throttlers.md) руководства администратора.

## Что квотируется { #what-is-throttled }

Квотируется сетевая полоса между кластерами YTsaurus. Квотирование затрагивает:

- Все операции [RemoteCopy](https://ytsaurus.tech/docs/ru/user-guide/data-processing/operations/remote-copy.md).
- Операции MapReduce с удалённым чтением входных таблиц.


## Влияние на операции пользователей { #user-impact }

Ограничение межкластерной полосы может замедлить выполнение операций, которые читают данные с других кластеров. Квотирование действует на двух уровнях:

1. **На уровне джоба** — джоб не может читать данные быстрее выделенного ему лимита.
2. **На уровне контроллер-агента** — если лимит межкластерной полосы исчерпан, новые джобы операции не запускаются до появления свободной полосы.

### Как понять, что операция упирается в сетевой лимит { #network-limit-alert }

Если джобы операции не удаётся запланировать из-за отсутствия свободной межкластерной полосы, у операции выставляется алерт **Unavailable network bandwidth to clusters**.

Алерт можно посмотреть:

* **В веб-интерфейсе** на странице операции:
![Unavailable network bandwidth to clusters](https://jing.yandex-team.ru/files/yuryalekseev/unavailable_network3-1.png)
* **Через CLI** с помощью команды `get-operation`:

```bash
yt get-operation <operation-id> --attribute alerts
```

Пример вывода, если операция упирается в сетевой лимит:
```json
{
  "alerts": [
    {
      "type": "unavailable_network_bandwidth_to_clusters",
      "message": "Not enough network bandwidth to clusters"
    }
  ]
}
```

### Как посмотреть утилизацию межкластерного сетевого канала { #channel-utilization }

Чтобы посмотреть утилизацию сетевого канала для трафика, поступающего на кластер `local` с кластера `remote`, выполните следующую команду на кластере `local`:

```
yt --proxy local list \
  "//sys/discovery_servers/<discovery-server>/orchid/discovery_server/remote_cluster_throttlers_group/@members" \
  --attribute local_throttlers --format json | jq '[.[] | ."$attributes"."local_throttlers"."bandwidth_remote"."rate"] | add'
```


### Влияние на планирование { #scheduling-impact }

Межкластерная сетевая полоса не относится к ресурсам планировщика в контексте fair share. Однако квотирование влияет на запуск джобов: если лимит межкластерной полосы исчерпан, контроллер операции сообщает планировщику, что ему не нужны ресурсы. Это предотвращает запуск новых джобов до появления свободной полосы. Уже запущенные джобы продолжают работать с ограничением на использование межкластерной полосы.

### Рекомендации по использованию { #recommendations }

Если нужно читать с другого кластера большой объём данных (десятки терабайт и более), рекомендуется ограничить количество одновременно выполняющихся джобов операции. Это поможет избежать чрезмерной нагрузки на межкластерный сетевой канал.

#### Выбор значения user_slots { #user-slots-value }

Если исходить из скорости чтения около 50 МБ/с на один джоб, можно начать с ограничения `user_slots` в 300-500 джобов. Это обеспечит скорость передачи около 15-25 ГБ/с, чего обычно достаточно для большинства сценариев.

Конкретное значение зависит от:
- Доступной межкластерной полосы пропускания
- Объёма передаваемых данных
- Требуемого времени выполнения операции
- Нагрузки на сетевой канал от других операций

#### Способы ограничения количества джобов { #limit-jobs }

Ограничить количество джобов можно двумя способами:

* **Установить ограничение `user_slots` на операцию** через спецификацию операции. Параметр `user_slots` контролирует число джобов на узле кластера — каждый джоб всегда занимает ровно один `user_slot`. Например, можно указать в спецификации `resource_limits={user_slots=200}` — в этом случае у операции будет запущено не более 200 джобов одновременно в каждом дереве. Подробнее о настройке ресурсов операций см. в разделе [Конфигурация вычислительных ресурсов операции](https://ytsaurus.tech/docs/ru/user-guide/data-processing/scheduler/pool-settings.md#operations).
* **Использовать пул с ограничением на `user_slots`**. Для пула можно задать ограничение на ресурсы через атрибут `resource_limits`, который включает в том числе `user_slots`. Например, можно установить ограничение для пула командой `yt set //sys/pools/.../<your_pool>/@resource_limits '{user_slots=2000}'`. Подробнее о настройке пулов см. в разделе [Настройка пулов](https://ytsaurus.tech/docs/ru/user-guide/data-processing/scheduler/pool-settings.md).

## Конфигурация { #configuration }

Настройка квотирования межкластерной полосы осуществляется администратором кластера. Подробнее о настройке см. в разделе [Настройка квотирования межкластерной сетевой полосы](https://ytsaurus.tech/docs/ru/admin-guide/cluster-throttlers.md) руководства администратора.
<!-- endsource: ru/_includes/user-guide/data-processing/operations/cluster-throttlers.md -->
