---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/troubleshooting/performance/ydb/tablets-moved.md
  - https://ydb.tech/docs/ru/troubleshooting/performance/ydb/tablets-moved.md
  - href: ru/troubleshooting/performance/ydb/tablets-moved.md
    type: text/markdown
    title: Markdown version
  - href: ../../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/troubleshooting/performance/ydb/tablets-moved.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Частые переезды таблеток между узлами

YDB автоматически распределяет нагрузку, перемещая таблетки с перегруженных узлов на другие узлы. Этот процесс управляется компонентом [Hive](https://ydb.tech/docs/ru/concepts/glossary.md#hive). Когда Hive перемещает таблетки, запросы, затрагивающие эти таблетки, могут выполняться дольше из-за ожидания инициализации таблетки на новом узле.

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

* процессор;
* оперативная память;
* сетевой трафик;
* [Counter](*counter).

Балансировка выполняется автоматически в следующих случаях:

* **Дисбаланс потребления аппаратных ресурсов**

    Для оценки сбалансированности потребления аппаратных ресурсов YDB использует метрику **Scatter**. Подробнее о логике расчёта метрики **Scatter** и условиях запуска балансировки см. в разделе [Дисбаланс потребления ресурсов](https://ydb.tech/docs/ru/contributor/hive.md#scatter).

* **Перегруженность узла**

    Hive инициирует балансировку при сильной асимметрии загрузки (например, > 90% на одном узле и < 70% на другом). Подробнее см. [Перегруженность узла](https://ydb.tech/docs/ru/contributor/hive.md#emergency).

* **Неравномерное распределение таблеток одного объекта**

    Для таблеток, у которых отсутствует явное потребление ресурсов, Hive использует фиктивный ресурс **Counter** для контроля равномерности распределения. При нарушении равномерности запускается балансировка. Подробнее см. [Равномерное распределение конкретного объекта](https://ydb.tech/docs/ru/contributor/hive.md#imbalance).

## Диагностика

<!-- The include is added to allow partial overrides in overlays  -->
<!-- source: ru/troubleshooting/performance/ydb/_includes/tablets-moved.md -->
1. Посмотрите, отображаются ли всплески на графике **Tablets moved by Hive** на панели мониторинга Grafana **[DB status](https://ydb.tech/docs/ru/reference/observability/metrics/grafana-dashboards.md#dbstatus)**.

    ![](_assets/tablets-moved.png)

    На этой диаграмме отображаются данные о количестве таблеток, перемещаемых между узлами YDB в секунду.

1. Проанализируйте статистику балансировщика Hive.

    1. Откройте [Встроенный UI](https://ydb.tech/docs/ru/reference/embedded-ui/index.md).

    1. Нажмите на ссылку **Developer UI** в правом верхнем углу Встроенного UI.

    1. В **Developer UI** перейдите на страницу **Tablets > Hive > App**.

        Проанализируйте статистику балансировщика в правом верхнем углу.

        ![cpu balancer](_assets/cpu-balancer.jpg)

    1. Кроме того, чтобы просмотреть недавно перемещённые таблетки, нажмите на кнопку **Balancer**.

        Откроется окно **Balancer**, в котором список недавно перемещённых таблеток отображается в секции **Latest tablet moves**.
<!-- endsource: ru/troubleshooting/performance/ydb/_includes/tablets-moved.md -->

## Рекомендации

Измените настройки балансировщика Hive:

1. Откройте [Встроенный UI](https://ydb.tech/docs/ru/reference/embedded-ui/index.md).

1. Нажмите на ссылку **Developer UI** в правом верхнем углу Встроенного UI.

1. В **Developer UI** перейдите на страницу **Tablets > Hive > App**.

    ![](_assets/hive-app.png)

1. Нажмите на **Settings**.

1. Чтобы снизить вероятность слишком частой балансировки, увеличьте следующие пороговые значения балансировщика Hive:

    #|
    || Параметр | Описание | Значение по умолчанию ||
    || MinCounterScatterToBalance
    | Пороговое значение для значения разброса ресурса counter. При достижении этого значения Hive начинает балансировать нагрузку
    | 0.02 ||
    || MinCPUScatterToBalance
    | Пороговое значение для значения разброса ресурса процессора. При достижении этого значения Hive начинает балансировать нагрузку
    | 0.5 ||
    || MinMemoryScatterToBalance
    | Пороговое значение для значения разброса ресурса оперативной памяти. При достижении этого значения Hive начинает балансировать нагрузку
    | 0.5 ||
    || MinNetworkScatterToBalance
    | Пороговое значение для значения разброса ресурса сетевого трафика. При достижении этого значения Hive начинает балансировать нагрузку
    | 0.5 ||
    || MaxNodeUsageToKick
    | Пороговое значение использования ресурсов узла YDB. При достижении этого значения Hive начинает срочную балансировку
    | 0.9 ||
    || ObjectImbalanceToBalance
    | Пороговое значение метрики дисбаланса объекта базы данных
    | 0.02 ||
    |#

    {% note info %}

    В этих параметрах используются относительные значения, где 1.0 соответствует 100% и фактически отключает балансировку. Если общее значение аппаратных ресурсов может превышать 100%, скорректируйте значение настройки соответствующим образом.

    {% endnote %}

[*counter]: Counter - это фиктивный ресурс, который представляет собой количество таблеток одного типа, запущенных на узле, который может быть использован для равномерного распределения таблеток между узлами.