aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvporyadke <zalyalov@ydb.tech>2025-03-27 04:28:43 +0300
committerGitHub <noreply@github.com>2025-03-27 08:28:43 +0700
commita94e17d6f1560c5e0953f69229e498c54092ac58 (patch)
treeaa27c9352bc49382beb852003fe0f89b42f95ec8
parent8a9a129f6051029bef292c41f17cbfbced156610 (diff)
downloadydb-a94e17d6f1560c5e0953f69229e498c54092ac58.tar.gz
update hive ui reference (#10749)
Co-authored-by: Ivan Blinkov <ivan@ydb.tech> Co-authored-by: Ilnaz Nizametdinov <i.nizametdinov@gmail.com> Co-authored-by: anton-bobkov <anton-bobkov@ydb.tech>
-rw-r--r--ydb/docs/ru/core/contributor/hive.md21
-rw-r--r--ydb/docs/ru/core/reference/configuration/hive.md268
-rw-r--r--ydb/docs/ru/core/reference/configuration/toc_p.yaml2
-rw-r--r--ydb/docs/ru/core/reference/embedded-ui/hive.md114
-rw-r--r--ydb/docs/ru/core/reference/embedded-ui/index.md1
5 files changed, 355 insertions, 51 deletions
diff --git a/ydb/docs/ru/core/contributor/hive.md b/ydb/docs/ru/core/contributor/hive.md
index 584d306ceb..06d4a7fde9 100644
--- a/ydb/docs/ru/core/contributor/hive.md
+++ b/ydb/docs/ru/core/contributor/hive.md
@@ -6,24 +6,26 @@ Hive — таблетка, отвечающая за управление дру
В кластере {{ ydb-short-name }} есть корневой Hive, который отвечает за [системные таблетки](../concepts/glossary.md#tablet-types) всех баз данных кластера. Hive конкретной базы данных, в свою очередь, отвечает за таблетки, обслуживающие пользовательскую нагрузку этой базы. Все узлы кластера регистрируются в корневом Hive, а в Hive конкретной базы регистрируются только вычислительные узлы этой базы. При регистрации узел сообщает в Hive, какие типы таблеток и в каком количестве могут быть на нём запущены.
-## Метрики потребления ресурсов
+## Метрики потребления ресурсов {#resources}
Для распределения таблеток по узлам Hive учитывает потребление ресурсов. Для каждой таблетки отслеживается потребление четырёх типов ресурсов:
1. *CPU* — потребление процессора, рассчитывается как число микросекунд, затраченных на работу таблетки за последнюю секунду, и для визуализации переводится в проценты ядра.
1. *Memory* — потребление таблеткой оперативной памяти.
1. *Network* — генерируемый таблеткой объём трафика.
-1. *Counter* — фиктивный ресурс, используемый для реализации равномерного распределения в штуках. Если у таблетки ненулевое значение потребления любого другого ресурса, то её значение Counter равно 0, иначе оно равно 1. Таким образом, Counter применяется для любых таблеток, для которых нет данных о реальном потреблении, а также для таблеток, для которых учёт реального потребления отключён: по умолчанию это только таблетки [колоночных таблиц](../concepts/datamodel/table.md#column-oriented-tables).
+1. *Counter* — фиктивный ресурс, используемый для реализации равномерного распределения в штуках. Если у таблетки ненулевое значение потребления любого другого ресурса, то её значение Counter равно 0, иначе оно равно 1. Таким образом, Counter применяется для любых таблеток, для которых нет данных о реальном потреблении, а также для таблеток, для которых учёт реального потребления отключён: по умолчанию это только таблетки [колоночных таблиц](../concepts/datamodel/table.md#column-oriented-tables).{#counter}
Дополнительно для определения перегруженных узлов используются метрики потребления ресурсов узла целиком: потребление оперативной памяти и ресурсов процессора в пулах акторной системы. Эти значения переводятся в относительную величину (число от 0 до 1), и их максимум используется как значение общего потребления ресурсов узла — *Node usage*. Также для всех метрик на стороне Hive применяется агрегация по окну, чтобы учитывать всплески нагрузки.
Информация о ресурсах используется при выборе узла для таблетки: к примеру, если про некоторую таблетку известно только её потребление CPU, то будет выбран узел из числа наименее загруженных по CPU. Если известно несколько ресурсов, то используется максимум из их относительных потреблений.
-## Автобалансировка
+## Автобалансировка {#autobalancing}
В определённые моменты Hive может запустить процесс автобалансировки, перемещающий таблетки между узлами для улучшения распределения нагрузки. Ситуации, в которых это происходит, перечислены ниже. Автобалансировщик работает итеративо, принимая решения о перевозе таблеток последовательно и по одной. Он выбирает самый загруженный узел, взвешенно-случайным образом выбирает на нём таблетку и находит для неё более подходящий узел. Этот процесс повторяется, пока сбалансированность не будет восстановлена. То, как именно определяется загруженность узла, зависит от типа балансировки: например, при дисбалансе потребления CPU учитывается потребление CPU, а при неравномерном распределении колоночной таблицы — количество таблеток.
-### Дисбаланс потребления ресурсов
+Порогами, при которых запускается балансировка, можно управлять с помошью [конфигурации Hive](../reference/configuration/hive.md#autobalancing).
+
+### Дисбаланс потребления ресурсов {#scatter}
Для оценки сбалансированности потребления используется метрика *Scatter*, вычисляемая отдельно для каждого ресурса по формуле:
@@ -33,14 +35,21 @@ $\mathrm{MaxUsage}$ и $\mathrm{MinUsage}$ — максимум и миниму
Максимальное из значений $Scatter$ по разным ресурсам доступно в виде [сенсора](../devops/manual/monitoring.md) `Hive/MAX(BalanceScatter)` в подгруппе `tablets`.
-### Перегруженность узла
+### Перегруженность узла {#emergency}
Наличие сильно загруженного узла может негативно сказываться на работе {{ ydb-short-name }}: загруженность по CPU приводит к голоданию и увеличению задержки, а загруженность по памяти может привести к падению узла по out-of-memory. Балансировка запускается, если загрузка самого загруженного узла превышает 90%, а наименее загруженного — ниже 70%.
+Этот вариант балансировки отличается от других более аггресивными перевозами таблеток.
+
Максимальное потребление на узле доступно в виде [сенсора](../devops/manual/monitoring.md) `Hive/MAX(BalanceScatter)` в подгруппе `tablets`.
-### Равномерное распределение конкретного объекта
+### Равномерное распределение конкретного объекта {#imbalance}
Для таблеток, которые используют ресурс Counter, также отслеживается равномерность распределения таблеток каждого объекта (каждой таблицы) с помощью метрики `ObjectImbalance`, аналогичной описанной выше $Scatter$. При рестартах узлов равномерность может нарушаться, и тогда запускается балансировка.
Максимальное из значений `ObjectImbalance` по разным объектам доступно в виде [сенсора](../devops/manual/monitoring.md) `Hive/MAX(BalanceObjectImbalance)` в подгруппе `tablets`.
+
+## Смотрите также
+
+- [Настройка Hive](../reference/configuration/hive.md)
+- [Hive web-viewer](../reference/embedded-ui/hive.md)
diff --git a/ydb/docs/ru/core/reference/configuration/hive.md b/ydb/docs/ru/core/reference/configuration/hive.md
new file mode 100644
index 0000000000..ba407749b6
--- /dev/null
+++ b/ydb/docs/ru/core/reference/configuration/hive.md
@@ -0,0 +1,268 @@
+# Настройка Hive
+
+[Hive](../../concepts/glossary.md#hive) — компонент YDB, отвечающий за запуск [таблеток](../../concepts/glossary.md#tablet). В различных ситуациях и под разными паттернами нагрузки может возникнуть потребность в настройке его поведения. Поведение Hive конфигурируется в секции `hive_config` [конфигурации](../../maintenance/manual/config-overview.md) {{ ydb-short-name }}. Также часть опций из конфигурации доступна для редактирования через интерфейс [Hive web-viewer](../embedded-ui/hive.md#settings). Настройки, выставленные через интерфейс, имеют приоритет над указанными в конфигурации. Ниже перечислены все доступные опции, с указанием соответствующего названия опции в интерфейсе, если опцию возможно редактировать через интерфейс.
+
+## Опции запуска таблеток {#boot}
+
+С помощью этих опций можно регулировать с какой скоростью запускаются таблетки и как для них выбираются узлы.
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `max_tablets_scheduled` | MaxTabletsScheduled | Целое число | Максимальное число таблеток, одновременно находящихся в процессе старта на одном узле. | 100 ||
+|| `max_boot_batch_size` | MaxBootBatchSize | Целое число | Максимальное число таблеток из очереди запуска Hive, обрабатываемых за раз. | 1000 ||
+|| `node_select_strategy` | NodeSelectStrategy | Перечисление | Стратегия выбора узла для запуска таблетки. Возможные варианты:
+
+- `HIVE_NODE_SELECT_STRATEGY_WEIGHTED_RANDOM` — взвешенно-случайный выбор на основе потребления;
+- `HIVE_NODE_SELECT_STRATEGY_EXACT_MIN` — выбор узла с минимальным потреблением;
+- `HIVE_NODE_SELECT_STRATEGY_RANDOM_MIN_7P` — выбор случайного узла среди 7% узлов с наименьшим потреблением;
+- `HIVE_NODE_SELECT_STRATEGY_RANDOM` — выбор случайного узла.
+
+| `HIVE_NODE_SELECT_STRATEGY_RANDOM_MIN_7P` ||
+|| `boot_strategy` | — | Перечисление | Регулирует поведение при запуске большого числа таблеток. Возможные варианты:
+
+* `HIVE_BOOT_STRATEGY_BALANCED` — при достижении лимита в `max_tablets_scheduled` на одном узле останавливает запуск новых таблеток на всех узлах.
+* `HIVE_BOOT_STRATEGY_FAST` — при достижении лимита в `max_tablets_scheduled` на одном узле продолжает запуск таблеток на других узлах.
+
+Если при запуске большого количества таблеток один из узлов запускает таблетки чуть медленне других, то при использовании `HIVE_BOOT_STRATEGY_FAST` на этом узле будет запущено меньше таблеток, чем на остальных. При использовании `HIVE_BOOT_STRATEGY_BALANCED` в той же ситуации таблетки будут равномерно распределены по узлам, но их запуск займёт больше времени.
+
+| `HIVE_BOOT_STRATEGY_BALANCED` ||
+|| `default_tablet_limit` | — | Вложенная секция | Ограничения на запуск таблеток различных типов на одном узле. Указывается в формате списка, где каждый элемент имеет поля `type` и `max_count`. | Пустая секция ||
+|| `default_tablet_preference` | — | Вложенная секция | Приоритеты по выбору датацентров для запуска таблеток различных типов. Для каждого типа таблетки можно указать несколько групп датацентров. Датацентры внутри одной группы будут иметь одинаковый приоритет, а более ранняя группа будет иметь приориет над последующими. Пример формата:
+
+```yaml
+default_tablet_preference:
+ - type: Coordinator
+ data_centers_preference:
+ - data_centers_group:
+ - "dc-1"
+ - "dc-2"
+ - data_centers_group:
+ - "dc-3"
+```
+
+| Пустая секция ||
+|| `system_category_id` | — | Целое число | При указании любого отличного от 0 числа, все координаторы и медиаторы по возможности запускаются в одном и том же датацентре. | 1 ||
+|# {wide-content}
+
+### Пример
+
+{% note info %}
+
+В подсекциях `default_tablet_limit` и `default_tablet_preference` нужно указывать типы таблеток. Точные названия типов таблеток можно посмотреть, например, на вкладке Tablets в [YDB UI](../embedded-ui/ydb-monitoring.md).
+
+{% endnote %}
+
+```yaml
+hive_config:
+ max_tablets_scheduled: 10
+ node_select_strategy: HIVE_NODE_SELECT_STRATEGY_RANDOM
+ boot_strategy: HIVE_BOOT_STRATEGY_FAST
+ default_tablet_limit:
+ - type: PersQueue
+ max_count: 15
+ - type: DataShard
+ max_count: 100
+ default_tablet_preference:
+ - type: Coordinator
+ data_centers_preference:
+ - data_centers_group:
+ - "dc-1"
+ - "dc-2"
+ - data_centers_group:
+ - "dc-3"
+```
+
+## Опции автобалансировки {#autobalancing}
+
+Эти опции регулируют процесс [автобалансировки](../../contributor/hive.md#autobalancing): в каких ситуациях он запускается, сколько таблеток с какими интервалами перевозит, как выбирает узлы и таблетки. Часть опций представлена в двух вариациях: для "emergency-балансировки", то есть балансировки при перегрузке одного или нескольких узлов, и для всех остальных видов балансировки.
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `min_scatter_to_balance` | MinScatterToBalance | Вещественное число | Порог метрики [Scatter](../../contributor/hive.md#scatter) для ресурсов CPU, Memory, Network. Имеет приоритет ниже, чем параметры ниже. | 0.5 ||
+|| `min_cpuscatter_to_balance` | MinCPUScatterToBalance | Вещественное число | Порог метрики Scatter для ресурса CPU. | 0.5 ||
+|| `min_memory_scatter_to_balance` | MinMemoryScatterToBalance | Вещественное число | Порог метрики Scatter для ресурса Memory.| 0.5 ||
+|| `min_network_scatter_to_balance` | MinNetworkScatterToBalance | Вещественное число | Порог метрики Scatter для ресурса Network. | 0.5 ||
+|| `min_counter_scatter_to_balance` | MinCounterScatterToBalance | Вещественное число | Порог метрики Scatter для фиктивного ресурса [Counter](../../contributor/hive.md#counter). | 0.02 ||
+|| `min_node_usage_to_balance` | MinNodeUsageToBalance | Вещественное число | Потребление ресурсов на узле ниже данного значения приравнивается к данному значению. Используется для того, чтобы не балансировать таблетки между малозагруженными узлами. | 0.1 ||
+|| `max_node_usage_to_kick` | MaxNodeUsageToKick | Вещественное число | Порог потребления ресурсов на узле для запуска emergency-автобалансировки. | 0.9 ||
+|| `node_usage_range_to_kick` | NodeUsageRangeToKick | Вещественное число | Минимальная разница в уровне потребления ресурсов между узлами, ниже которой автобалансировка считается нецелесообразной. | 0.2 ||
+|| `resource_change_reaction_period` | ResourceChangeReactionPeriod | Целое число секунд | Частота обновления агрегированной статистики потребления ресурсов. | 10 ||
+|| `tablet_kick_cooldown_period` | TabletKickCooldownPeriod | Целое число секунд | Минимальный период времени между перемещениями одной таблетки. | 600 ||
+|| `spread_neighbours` | SpreadNeighbours | true/false | Запуск таблеток одного схемного объекта (таблицы, топика) по возможности на разных узлах. | true ||
+|| `node_balance_strategy` | NodeBalanceStrategy | Перечисление | Стратегия выбора узла, с которого перевозятся таблетки при автобалансировке. Возможные варианты:
+
+- `HIVE_NODE_BALANCE_STRATEGY_WEIGHTED_RANDOM` — взвешенно-случайный выбор на основе потребления;
+- `HIVE_NODE_BALANCE_STRATEGY_HEAVIEST` — выбор узла с максимальным потреблением;
+- `HIVE_NODE_BALANCE_STRATEGY_RANDOM` — выбор случайного узла.
+
+| `HIVE_NODE_BALANCE_STRATEGY_HEAVIEST` ||
+|| `tablet_balance_strategy` | TabletBalanceStrategy | Перечисление | Стратегия выбора таблетки для перевоза при автобалансировке. Возможные варианты:
+
+- `HIVE_TABLET_BALANCE_STRATEGY_WEIGHTED_RANDOM` — взвешенно-случайный выбор на основе потребления;
+- `HIVE_TABLET_BALANCE_STRATEGY_HEAVIEST` — выбор таблетки с максимальным потреблением;
+- `HIVE_TABLET_BALANCE_STRATEGY_RANDOM` — выбор случайной таблетки.
+
+| `HIVE_TABLET_BALANCE_STRATEGY_WEIGHTED_RANDOM` ||
+|| `min_period_between_balance` | MinPeriodBetweenBalance | Вещественное число секунд | Минимальный период времени между двумя итерациями автобалансировки. Не относится к emergency-балансировке. | 0.2 ||
+|| `balancer_inflight` | BalancerInflight | Целое число | Число таблеток, одновременно перезапускающихся в процессе автобалансировки. Не относится к emergency-балансировке. | 1 ||
+|| `max_movements_on_auto_balancer` | MaxMovementsOnAutoBalancer | Целое число | Число перемещений таблеток за одну итерацию автобалансировки. Не относится к emergency-балансировке. | 1 ||
+|| `continue_auto_balancer` | ContinueAutoBalancer | true/false | При включении следующая итерация балансировки запускается, не дожидаясь окончания `resource_change_reaction_period`. | true ||
+|| `min_period_between_emergency_balance` | MinPeriodBetweenEmergencyBalance | Вещественное число секунд | Аналогично `min_period_between_balance`, но для emergency-балансировки. | 0.1 ||
+|| `emergency_balancer_inflight` | EmergencyBalancerInfligh | Целое число | Аналогично `balancer_inflight`, но для emergency-балансировки. | 1 ||
+|| `max_movements_on_emergency_balancer` | MaxMovementsOnEmergencyBalancer | Целое число | Аналогично `max_movements_on_auto_balancer`, но для emergency-балансировки. | 2 ||
+|| `continue_emergency_balancer` | ContinueEmergencyBalancer | true/false | Аналогично `continue_auto_balancer`, но для emergency-балансировки. | true ||
+|| `check_move_expediency` | CheckMoveExpediency | true/false | Проверка целесообразности перемещений таблеток. Если автобалансировка приводит к повышенному потреблению Hive процессорных ресурсов, можно отключить эту опцию. | true ||
+|| `object_imbalance_to_balance` | ObjectImbalanceToBalance | Вещественное число | Порог метрики [дисбаланса таблеток одного объекта](../../contributor/hive.md#imbalance). | 0.02 ||
+|| `less_system_tablets_moves` | LessSystemTabletMoves | true/false | Минимизация перемещения системных таблеток при автобалансировке. | true ||
+|| `balancer_ignore_tablet_types` | BalancerIgnoreTabletTypes | Список типов таблеток. При выставлении через Hive UI — разделённый точкой с запятой. | Типы таблеток, на которые не распространяется автобалансировка. | Пустой список ||
+|# {wide-content}
+
+### Примеры
+
+С помощью такого файла конфигурации можно полностью отключить все виды автобалансировки таблеток между узлами.
+
+```yaml
+hive_config:
+ min_cpuscatter_to_balance: 1.0
+ min_memory_scatter_to_balance: 1.0
+ min_network_scatter_to_balance: 1.0
+ min_counter_scatter_to_balance: 1.0
+ max_node_usage_to_kick: 3.0
+ object_imbalance_to_balance: 1.0
+```
+
+Таким файлом конфигурации можно отключить все виды автобалансировки между узлами для таблеток, участвующих в распределении транзакций, то есть [координаторов](../../concepts/glossary.md#coordinator) и [медиаторов](../../concepts/glossary.md#mediator). Точные названия типов таблеток можно посмотреть, например, на вкладке Tablets в [YDB UI](../embedded-ui/ydb-monitoring.md).
+
+
+```yaml
+hive_config:
+ balancer_ignore_tablet_types:
+ - Coordinator
+ - Mediator
+```
+
+При использовании Hive UI для такого же эффекта нужно записать `Coordinator;Mediator` в поле ввода для настройки BalancerIgnoreTabletTypes.
+
+## Опции сбора метрик потребления вычислительных ресурсов {metrics}
+
+Hive собирает с каждого узла [метрики потребления вычислительных ресурсов](../../contributor/hive.md#resources) — процессорного времени, оперативной памяти, сети — в целом по узлу и с разделением по таблеткам. Эти настройки позволяют регулировать сбор этих метрик, их нормировку и агрегацию.
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `max_resource_cpu` | MaxResourceCPU | Целое число микросекунд | Максимальное потребление CPU на узле в секунду. Значение по умолчанию, используется только если узел не предоставляет значение при регистрации в Hive. | 10000000 ||
+|| `max_resource_memory` | MaxResourceMemory | Целое число байт | Максимальное потребление памяти на узле. Значение по умолчанию, используется только если узел не предоставляет значение при регистрации в Hive. | 512000000000 ||
+|| `max_resource_network` | MaxResourceNetwork | Целое число байт/секунду | Максимальное потребление полосы на узле. Значение по умолчанию, используется только если узел не предоставляет значение при регистрации в Hive. | 1000000000 ||
+|| `max_resource_counter` | MaxResourceCounter | Целое число | Максимальное потребление виртуального ресурса Counter на узле. | 100000000 ||
+|| `metrics_window_size` | MetricsWindowSize | Целое число миллисекунд | Размер окна, на котором агрегируются метрики потребления ресурсов таблетками. | 60000 ||
+|| `resource_overcommitment` | ResourceOvercommitment | Вещественное число | Коэффициент переподписки на ресурсы узлов. | 3.0 ||
+|| `pools_to_monitor_for_usage` | — | Названия пулов через запятую | Пулы актор-системы, потребление в которых учитывается при подсчётё потребления ресурсов узла. | System,User,IC ||
+|# {wide-content}
+
+## Опции распределения каналов между группами хранения {#storage}
+
+Здесь перечислены опции, связанные с распределением [каналов](../../concepts/glossary.md#channel) таблеток по [группам хранения](../../concepts/glossary.md#storage-group): с учётом различных метрик, с выбором групп, с процессом автобалансировки каналов по группам.
+
+
+{% note info %}
+
+Эта таблица содержит продвинутые настройки, которые в большинстве случаев не требуют изменения.
+
+{% endnote %}
+
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `default_unit_iops` | DefaultUnitIOPS | Целое число | Значение по умолчанию для IOPS одного канала. | 1 ||
+|| `default_unit_throughput` | DefaultUnitThroughput | Целое число байт/секунду | Значение по умолчанию для потребления пропускной способности одним каналом. | 1000 ||
+|| `default_unit_size` | DefaultUnitSize | Целое число байт | Значение по умолчанию для потребления места на дисках одним каналом. | 100000000 ||
+|| `storage_overcommit` | StorageOvercommit | Вещественное число | Коэффициент переподписки на ресурсы групп хранения. | 1.0 ||
+|| `storage_balance_strategy` | StorageBalanceStrategy | Перечисление | Выбор параметра используемого для распределения каналов таблеток по группам хранения. Возможные варианты:
+
+- `HIVE_STORAGE_BALANCE_STRATEGY_IOPS` — учитывается только IOPS;
+- `HIVE_STORAGE_BALANCE_STRATEGY_THROUGHPUT` — учитывается только потребление пропускной способности;
+- `HIVE_STORAGE_BALANCE_STRATEGY_SIZE` — учитывается только объём занятого места;
+- `HIVE_STORAGE_BALANCE_STRATEGY_AUTO` — учитывается тот из параметров выше, чьё потребление максимально;
+
+| `HIVE_STORAGE_BALANCE_STRATEGY_SIZE` ||
+|| `storage_safe_mode` | StorageSafeMode | true/false | Проверка превышения максимального потребления ресурсов групп хранения. | true ||
+|| `storage_select_strategy` | StorageSelectStrategy | Перечисление | Стратегия выбора группы хранения для канала таблетки. Возможные варианты:
+
+- `HIVE_STORAGE_SELECT_STRATEGY_WEIGHTED_RANDOM` — взвешенно-случайный выбор на основе потребления;
+- `HIVE_STORAGE_SELECT_STRATEGY_EXACT_MIN` — выбор группы с минимальным потреблением;
+- `HIVE_STORAGE_SELECT_STRATEGY_RANDOM_MIN_7P` — выбор случайной группы среди 7% групп с наименьшим потреблением;
+- `HIVE_STORAGE_SELECT_STRATEGY_RANDOM` — выбор случайной группы;
+- `HIVE_STORAGE_SELECT_STRATEGY_ROUND_ROBIN` - выбор группы внтури пула хранения по принципу [Round-robin](https://ru.wikipedia.org/wiki/Round-robin_(%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC)).
+| `HIVE_STORAGE_SELECT_STRATEGY_WEIGHTED_RANDOM` ||
+|| `min_period_between_reassign` | MinPeriodBetweenReassign | Целое число секунд | Минимальный период времени между переназначениями групп хранения для каналов одной таблетки. | 300 ||
+|| `storage_pool_fresh_period` | StoragePoolFreshPeriod | Целое число миллисекунд | Периодичность обновления информации о пулах хранения. | 60000 ||
+|| `space_usage_penalty_threshold` | SpaceUsagePenaltyThreshold | Вещественное число | Минимальное отношение свободного места в целевой группе к свободному месту в исходной группе, при котором целевая группа будет пессимизирована путём применения к весу мультипликативного штрафа при перевозе канала. | 1.1 ||
+|| `space_usage_penalty` | SpaceUsagePenalty | Вещественное число | Коэффициент штрафа пессимизации, описанной выше. | 0.2 ||
+|| `channel_balance_strategy` | ChannelBalanceStrategy | Перечисление | Стратегия выбора канала для переназначения при балансировке каналов. Возможные варианты:
+
+- `HIVE_CHANNEL_BALANCE_STRATEGY_WEIGHTED_RANDOM` — взвешенно-случайный выбор на основе потребления;
+- `HIVE_CHANNEL_BALANCE_STRATEGY_HEAVIEST` — выбор канала с максимальным потреблением;
+- `HIVE_CHANNEL_BALANCE_STRATEGY_RANDOM` — выбор случайного канала.
+
+| `HIVE_CHANNEL_BALANCE_STRATEGY_WEIGHTED_RANDOM` ||
+|| `max_channel_history_size` | MaxChannelHistorySize | Целое число | Максимальный размер истории каналов. | 200 ||
+|| `storage_info_refresh_frequency` | StorageInfoRefreshFrequency | Целое число миллисекунд | Частота обновления информации о пулах хранения. | 600000 ||
+|| `min_storage_scatter_to_balance` | MinStorageScatterToBalance | Вещественное число | Порог метрики Scatter для групп хранения. | 999 ||
+|| `min_group_usage_to_balance` | MinGroupUsageToBalance | Вещественное число | Порог потребления ресурсов группы хранения, ниже которого не запускается балансировка. | 0.1 ||
+|| `storage_balancer_inflight` | StorageBalancerInflight | Целое число | Число таблеток, одновременно перезапускающихся во время балансировки каналов. | 1 ||
+|# {wide-content}
+
+## Опции отслеживания перезапусков {#restarts}
+
+Hive отслеживает, как часто рестартуют различные узлы и таблетки, чтобы определять проблемные. С помощью данных опций можно настроить, какие именно таблетки или узлы будут считаться проблемными, и как это на них повлияет. На основании этой статистики узлы и таблетки попадают в отчёт [HealthCheck API](../ydb-sdk/health-check-api.md).
+
+### Опции отслеживания перезапусков таблеток
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `tablet_restart_watch_period` | — | Целое число секунд | Размер окна, на котором собирается статистика о числе рестартов таблетки. **Этот период используется только для статистики, передаваемой в HealthCheck.** | 3600 ||
+|| `tablet_restarts_period` | — | Целое число миллисекунд | Размер окна, на котором считается количество рестартов таблетки для пессимизации запуска проблемных таблеток. | 1000 ||
+|| `tablet_restarts_max_count` | — | Целое число | Количество рестартов на окне `tablet_restarts_period`, при превышении которого применяется пессимизация. | 2 ||
+|| `postopone_start_period` | — | Целое число миллисекунд | Периодичность попыток запуска проблемных таблеток. | 1000 ||
+|# {wide-content}
+
+### Опции отслеживания перезапусков узлов
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `node_restart_watch_period` | — | Целое число секунд | Размер окна, на котором собирается статистика о числе рестартов узла. | 3600 ||
+|| `node_restarts_for_penalty` | NodeRestartsForPenalty | Целое число | Количество рестартов на окне `node_restart_watch_period`, после которого узлы получают понижение приоритета. | 3 ||
+|# {wide-content}
+
+
+## Прочее {#misc}
+
+Здесь перечислены дополнительные настройки Hive.
+
+
+{% note info %}
+
+Эта таблица содержит продвинутые настройки, которые в большинстве случаев не требуют изменения.
+
+{% endnote %}
+
+
+#|
+|| Название параметра в конфигурации | Название параметра в Hive web-viewer | Формат | Описание | Значение по умолчанию ||
+|| `drain_inflight` | DrainInflight | Целое число | Число таблеток, одновременно перезапускающихся в процессе плавного перемещения всех таблеток с одного узла (drain). | 10 ||
+|| `request_sequence_size` | — | Целое число | Количество идентификаторов таблеток, которое за один раз Hive базы данных запрашивает у корневого Hive. | 1000 ||
+|| `min_request_sequence_size` | — | Целое число | Минимальное количество идентификаторов таблеток, которое за один раз корневой Hive выделяет для Hive базы данных. | 1000 ||
+|| `max_request_sequence_size` | — | Целое число | Максимальное количество идентификаторов таблеток, которое за один раз выделяет для Hive базы данных. | 1000000 ||
+|| `node_delete_period` | — | Целое число секунд | Период неактивности, по истечении которого узел удаляется из базы Hive. | 3600 ||
+|| `warm_up_enabled` | WarmUpEnabled | true/false | При включении этой опции при старте базы Hive дожидается подключения всех узлов прежде чем начать запускать таблетки. При выключении все таблетки могут быть запущены на первом подключившемся узле. | true ||
+|| `warm_up_boot_waiting_period` | MaxWarmUpBootWaitingPeriod | Целое число миллисекунд | Время ожидания старта всех известных узлов при старте базы. | 30000 ||
+|| `max_warm_up_period` | MaxWarmUpPeriod | Целое число секунд | Максимальное время ожидания старта узлов при старте базы. | 600 ||
+|| `enable_destroy_operations` | — | true/false | Разрешены ли деструктивные ручные операции. | false ||
+|| `max_pings_in_flight` | — | Целое число | Максимальное количество параллельно устаналиваемых соединений с узлами. | 1000 ||
+|| `cut_history_deny_list` | — | Список типов таблеток, разделённый запятой | Список типов таблеток, для которых игнорируется операция очистки истории. | ColumnShard,KeyValue,PersQueue,BlobDepot ||
+|| `cut_history_allow_list` | — | Список типов таблеток, разделённый запятой | Список типов таблеток, для которых разрешена операция очистки истории. | DataShard ||
+|| `scale_recommendation_refresh_frequency` | ScaleRecommendationRefreshFrequency | Целое число миллисекунд | Как часто обновляется рекомендация по количеству вычислительных узлов. | 60000 ||
+|| `scale_out_window_size` | ScaleOutWindowSize | Целое число | Количество бакетов, на основе которых принимается решение о рекомендации увеличить число вычислительных узлов. | 15 ||
+|| `scale_in_window_size` | ScaleInWindowSize | Целое число | Количество бакетов, на основе которых принимается решение о рекомендации уменьшить число вычислительных узлов. |5 ||
+|| `target_tracking_cpumargin` | TargetTrackingCPUMargin | Вещественное число | Допустимое отклонение от целевого значения утилизации CPU при автоскейлинге. | 0.1 ||
+|| `dry_run_target_tracking_cpu` | DryRunTargetTrackingCPU | Вещественное число | Целевое значение утилизации CPU для проверки, как работал бы автоскейлинг. | 0 ||
+|# {wide-content}
diff --git a/ydb/docs/ru/core/reference/configuration/toc_p.yaml b/ydb/docs/ru/core/reference/configuration/toc_p.yaml
index ce2bfc5a67..546d7a53bc 100644
--- a/ydb/docs/ru/core/reference/configuration/toc_p.yaml
+++ b/ydb/docs/ru/core/reference/configuration/toc_p.yaml
@@ -3,3 +3,5 @@ items:
href: tls.md
- name: Аутентификация узлов баз данных
href: node-authentication.md
+- name: Hive
+ href: hive.md
diff --git a/ydb/docs/ru/core/reference/embedded-ui/hive.md b/ydb/docs/ru/core/reference/embedded-ui/hive.md
index f6b1369c0c..bf34d0f984 100644
--- a/ydb/docs/ru/core/reference/embedded-ui/hive.md
+++ b/ydb/docs/ru/core/reference/embedded-ui/hive.md
@@ -1,71 +1,95 @@
# Hive web-viewer
-Web-viewer Hive предоставляет интерфейс работы с Hive.
-Hive бывает общим на кластер и тенантный.
-Попасть на страницу Web-viewer Hive можно из {{ ydb-short-name }} Monitoring.
+Web-viewer Hive предоставляет визуальный интерфейс работы с [Hive](../../concepts/glossary.md#hive).
+
+Попасть на страницу Web-viewer Hive можно по ссылке Developer UI из вкладки Tablets в [Embedded UI](index.md). Для доступа к странице необходимо быть аутентифицированным как пользователь, входящий в список `monitoring_allowed_sids` в [конфигурации безопасности кластера](../configuration/index.md#security).
## Главная страница
-Главная страница представляет информацию о распределении и потреблении ресурсов таблетками на каждой из нод представленной в виде таблицы.
+Главная страница представляет информацию о распределении и потреблении ресурсов [таблетками](../../concepts/glossary.md#tablet) на каждом из [узлов](../../concepts/glossary.md#tablet), представленную в виде таблицы.
Перед таблицей представлена краткая информация:
-* **Tenant** - тенант, за который отвечает Hive
-* **Tablets** - процентное и количественное соотношение поднятых таблеток к имеющимся
-* **Boot Queue** - количество таблеток, которые находятся в очереди на запуск
-* **Wait Queue** - количество таблеток, которые не имеют возможности подняться
-* **Resource Total** - потребление ресурсов таблетками (cpu, net)
-* **Resource StDev** - среднеквадратическое отклонение потребления ресурсов (cnt, cpu, mem, net)
+* **Info**:
+ * **Tenant** — тенант, за который отвечает Hive. Для Hive конкрентой базы здесь указано имя этой базы, а для корневого Hive — имя корневого домена кластера (по умолчанию `/Root`).
+ * **Nodes** — количество узлов, подключённых к Hive.
+ * **Tablets** — процентное и количественное соотношение запущенных в данный момент таблеток к существующимм всего.
+ * **Boot Queue** — количество таблеток, которые находятся в очереди на запуск.
+ * **Wait Queue** — количество таблеток, которые не имеют возможности подняться, поскольку ни один из узлов не подходит для их запуска.
+* **Totals** — суммарное потребление [ресурсов](../../contributor/hive.md#resources) таблетками (cnt, cpu, mem, net).
+* **Variance** — [среднеквадратическое отклонение](https://ru.wikipedia.org/wiki/Среднеквадратическое_отклонение) потребления ресурсов (cnt, cpu, mem, net) между узлами.
+* **Triggers** — значения показателей, которые используются для принятия решения об [автобалансировке](../../contributor/hive.md#autobalancing). Каждый сопровождается цветовым индикатором: зелёный означает, что значение находится на приемлемом уровне; жёлтый — что оно близко к порогу; красный — что значение превысило порог, и сейчас должна быть запущена автобалансировка.
+ * **Counter**, **CPU**, **Memory**, **Network** — [дисбаланс](../../contributor/hive.md#scatter) в потреблении соответствующего ресурса между узлами.
+ * **MaxUsage** — максимальное потребление ресурса на одном узле.
+ * **Imbalance** — дисбаланс в распределении по узлам таблеток одного объекта. Применяется только для таблеток без метрик.
+* Статистика о числе запусков автобалансировки. Обнуляется при рестарте Hive. Время с последнего рестарта Hive можно увидеть на вкладке Tablets в Embedded UI,
После идет таблица, где каждая строка представляет из себя один из узлов под управлением Hive и имеет следующие столбцы:
-* **Node** - номер узла
-* **Name** - fqdn узла и ic-port
-* **DC** - датацентр, в котором расположен узел
-* **Domain** - тенант узла
-* **Uptime** - время, прошедшее с начала работы узла
-* **Unknown** - количество таблеток в неопределенном состоянии
-* **Starting** - количество таблеток в процессе подъема
-* **Running** - количество работающих таблеток
-* **Types** - распределение таблеток по их типу
-* **Usage** - отнормированный доминантный ресурс
+* **Node** — номер узла.
+* **Name** — fqdn узла и ic—port.
+* **DC** — датацентр, в котором расположен узел.
+* **Domain** — тенант узла.
+* **Uptime** — время, прошедшее с начала работы узла.
+* **Unknown** — количество таблеток в неопределенном состоянии.
+* **Starting** — количество таблеток в процессе подъема.
+* **Running** — количество работающих таблеток.
+* **Types** — распределение таблеток по их типу. С помощью нажатия на конкретный тип можно запретить запуск таблеток данного типа на конкретном узле. Нажатием на тип в заголовке таблицы можно установить такой запрет на все узлы по умолчанию.
+* **Usage** — общее потребление ресурсов узла.
* **Resources** :
- * **cnt** - количество таблеток без потребления ресурсов
- * **cpu** - потребление ядра таблетками
- * **mem** - потребление ОЗУ таблетками
- * **net** - потребление полосы таблетками
+ * **cnt** — фиктивный ресурс Counter.
+ * **cpu** — потребление ядра таблетками.
+ * **mem** — потребление ОЗУ таблетками.
+ * **net** — потребление полосы таблетками.
-* **Active** - включение/отключение узла для перевоза таблеток на данный узел
-* **Freeze** - запрет для таблеток подниматься на других узлах
-* **Kick** - перевоз всех таблеток разом с узла
-* **Drain** - плавный перевоз всех таблеток с узла
+* **Active** — включение/отключение узла для перевоза таблеток на данный узел.
+* **Freeze** — запрет для таблеток, запущенных на этом узле, подниматься на других узлах.
+* **Kick** — перевоз всех таблеток разом с узла.
+* **Drain** — плавный перевоз всех таблеток с узла — с ограниченным in-flight в отличие от Kick.
Ниже таблицы представлены дополнительные страницы:
-* **Bad tablets** - список таблеток, имеющих проблемы или ошибки
-* **Heavy tablets** - список таблеток, потребляющих значительное количество ресурсов
-* **Waiting tablets** - список таблеток без возможности подняться
-* **Resources** - потребление ресурсов каждой таблеткой
-* **Tenants** - список тенантов с указанием их локальных Hive таблеток
-* **Nodes** - список узлов
-* **Storage** - список пулов групп хранения
-* **Groups** - список групп хранения для каждой таблетки
-* **Settings** - страница конфигураций Hive
-* **Reassign Groups** - страница перераспределения групп хранения между таблетками
+* **Bad tablets** — список таблеток, имеющих проблемы или ошибки.
+* **Heavy tablets** — список из 1000 таблеток, потребляющих наибольшее количество ресурсов.
+* **Waiting tablets** — список таблеток без возможности подняться.
+* **Resources** — потребление ресурсов каждой таблеткой.
+* **Tenants** — список тенантов с указанием их локальных Hive таблеток.
+* **Balancer** — меню для ручного запуска автобалансировки.
+* **Operations log** — лог ручных изменений конфигураций Hive через viewer.
+* **Nodes** — список узлов.
+* **Storage** — список [пулов](../../concepts/glossary.md#storage-pool) групп хранения.
+* **Groups** — список [групп хранения](../../concepts/glossary.md#storage-group) для каждой таблетки.
+* **Settings** — страница конфигураций Hive.
+* [**Reassign Groups**](#reassign_groups) — страница перераспределения групп хранения между таблетками.
+* **SubActors** — список запущенных в данный момент вспомогательных акторов.
Также можно посмотреть, какие таблетки используют конкретную группу, и наоборот, какие группы используются в конкретной таблетке.
## Reassign Groups {#reassign_groups}
-При нажатии на кнопку **Reassign Groups** появится окно с параметрами для балансировки:
+При добавлении в базу данных новых групп хранения существующие таблетки продолжают писать в старые группы. Для таких ситуаций в интерфейсе предусмотрена возможность запуска перераспределения таблеток по группам хранения. При нажатии на кнопку **Reassign Groups** появится окно с параметрами для балансировки:
-* **Storage pool** - пул групп хранения для балансировки
-* **Storage group** - в случае если не указан предыдущий пункт, можно указать отдельно только одну группу
-* **Type** - тип таблеток для которых будет производиться балансировка
-* **Channels** - диапазон каналов, для которых будет производиться балансировка
-* **Percent** - процент от общего количества каналов таблеток которые переедут в результате балансировки
-* **Inflight** - количество одновременно переезжающих на другие группы таблеток
+* **Storage pool** — пул групп хранения для балансировки.
+* **Storage group** — если предыдущий пункт не указан, можно указать отдельно только одну группу.
+* **Type** — тип таблеток, для которых будет производиться балансировка.
+* **Channels** — диапазон [каналов](../../concepts/glossary.md#channel), для которых будет производиться балансировка.
+* **Percent** — процент от общего количества каналов таблеток, которые переедут в результате балансировки.
+* **Inflight** — количество таблеток, одновременно переезжающих на другие группы.
После указания всех параметров, следует нажать сначала "Query", который покажет количество каналов, попавших под переезд, и разблокирует кнопку "Reassign".
При нажатии которой начнется перераспределение.
+
+## Balancer
+
+При нажатии на кнопку **Balancer** появится окно со следующими элементами:
+
+* **Run Balancer** — ручной запуск балансировки таблеток по узлам с заданным ограничением на число перемещений таблеток.
+* **Rebalance ALL tablets FROM SCRATCH** — перезапуск сразу всех таблеток базы. Позволяет быстро получить равномерное распределение таблеток ценой кратковременной недоступности базы. *Не рекомендуется к использованию в production-окружении.*
+* **Latest tablet moves** — последние 5 перемещённых таблеток.
+
+## Settings {#settings}
+
+На странице **Settings** представлен список параметров конфигурации Hive, которыми можно управлять через интерфейс. Для каждого параметра указано три значения: текущее значение, значение из [конфигурации {{ ydb-short-name }}](../../maintenance/manual/config-overview.md) и значение по умолчанию. Параметры, значения которых выставлены через интерфейс, выделены полужирным шрифтом. Выставленные через интерфейс значения имеют приоритет над значениями из конфигурации {{ ydb-short-name }}. Внесение изменений в настройки через интерфейс не изменяет значения в конфигурации. С описанием параметров можно ознакомиться в [описании конфигурации](../configuration/hive.md).
+
+Также на этой странице представлена таблица типов таблеток и видов метрик, с помощью которой можно управлять тем, какие метрики учитываются для каких типов таблеток.
diff --git a/ydb/docs/ru/core/reference/embedded-ui/index.md b/ydb/docs/ru/core/reference/embedded-ui/index.md
index 7cc62942d6..68a5e52b6e 100644
--- a/ydb/docs/ru/core/reference/embedded-ui/index.md
+++ b/ydb/docs/ru/core/reference/embedded-ui/index.md
@@ -3,6 +3,7 @@
{{ ydb-short-name }} предоставляет инструменты для мониторинга и определения состояния системы:
* [{{ ydb-short-name }} Monitoring](ydb-monitoring.md) — основной обозреватель кластера. Показывает состояние узлов, групп хранения.
+* [Hive web-viewer](hive.md) — интерфейс для взаимодействия с [Hive](../../concepts/glossary.md#Hive).
* [Interconnect overview](interconnect-overview.md) — состояние соединений узлов кластера друг с другом.
* [Логи](logs.md) — каждый компонент {{ ydb-short-name }} пишет сообщения в логи разного уровня. По ним можно детектировать критические проблемы или разобраться в причинах неполадок.
* [Графики](charts.md) — {{ ydb-short-name }} собирает множество метрик, по которым можно определить состояние системы либо конкретного компонента.