diff options
author | bazeltsev <bazeltsev@ydb.tech> | 2023-04-10 14:20:45 +0300 |
---|---|---|
committer | bazeltsev <bazeltsev@ydb.tech> | 2023-04-10 14:20:45 +0300 |
commit | f8c5aa26b39bc589cff86b4ecd95a18a49421c6d (patch) | |
tree | ecd0f22a002eeb7d49ed173875e938882da30c66 | |
parent | 1403cab7fc5a42f23ecdab2c4ebcb7b92ca571a6 (diff) | |
download | ydb-f8c5aa26b39bc589cff86b4ecd95a18a49421c6d.tar.gz |
Add info about as14 and autoconfig tail
updated
-rw-r--r-- | ydb/docs/ru/core/deploy/configuration/config.md | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/ydb/docs/ru/core/deploy/configuration/config.md b/ydb/docs/ru/core/deploy/configuration/config.md index b97cb746115..c571bf3c440 100644 --- a/ydb/docs/ru/core/deploy/configuration/config.md +++ b/ydb/docs/ru/core/deploy/configuration/config.md @@ -378,10 +378,38 @@ domains_config: ## Акторная система {#actor-system} -В секции `actor_system_config` указывается, какое количество ядер CPU узла выделить различным подсистемам кластера {{ ydb-full-name }}. - Основной потребитель CPU — акторная система. Все акторы, в зависимости от своего типа, выполняются в одном из пулов (параметр `name`). Конфигурирование заключается в распределении ядер процессора узла по пулам акторной системы. При выделении процессорных ядер пулам нужно учитывать, что PDisk и gRPC API работают вне акторной системы и требуют отдельных ресурсов. +Вы можете использовать [автоматическое](#autoconfig) или [ручное](#tuneconfig) конфигурирование акторной системы. В секции `actor_system_config` укажите: + +* тип узла и количество ядер CPU, выделяемых процессу ydbd в случае использования автоматической конфигурирования; +* количество ядер CPU для каждой подсистемы кластера {{ ydb-full-name }} при использовании ручного конфигурирования. + +Автоматическое конфигурирование является адаптивным, т.е. подстраивается под текущую нагрузку системы. Его рекомендуется использовать в большинстве случаев. + +Ручное конфигурирование может быть полезно в случае, когда какой-либо пул акторной системы в процессе работы оказывается перегружен и это влияет на общую производительность БД. Отслеживать нагрузку пулов можно на [странице мониторинга в Embedded UI](../../maintenance/embedded_monitoring/ydb_monitoring.md#node_list_page). + +### Автоматическое конфигурирование {#autoconfig} + +Пример секции `actor_system_config` для автоматического конфигурирования акторной системы: + +```yaml +actor_system_config: + use_auto_config: true + node_type: STORAGE + cpu_count: 10 +``` + +Параметр | Описание +--- | --- +`use_auto_config` | Включение автоматического конфигурирования акторной системы. +`node_type` | Тип узла. Определяет ожидаемую нагрузку и соотношение ядер CPU между пулами. Одно из значений:<ul><li>`STORAGE` — узел работает с блочными устройствами и отвечает за Distributed Storage;</li><li>`COMPUTE` — узел обслуживает пользовательскую нагрузку;</li><li>`HYBRID` — узел работает со смешанной нагрузкой или потребление `System`, `User` и `IC` узла под нагрузкой приблизительно одинаково. +`cpu_count` | Количество ядер CPU, выделенных узлу. + +### Ручное конфигурирование {#tuneconfig} + +Пример секции `actor_system_config` для ручного конфигурирование акторной системы: + ```yaml actor_system_config: executor: @@ -418,6 +446,8 @@ actor_system_config: `name` | Имя пула, определяет его назначение. Одно из значений:<ul><li>`System` — предназначен для выполнения быстрых внутренних операций {{ ydb-full-name }} (обслуживает системные таблетки, State Storage, ввод и вывод Distributed Storage, Erasure Сoding);</li><li>`User` — обслуживает пользовательскую нагрузку (пользовательские таблетки, выполнение запросов в Query Processor);</li><li>`Batch` — обслуживает задачи, которые не имеют строгого лимита на время выполнения, фоновых операции (сборка мусора, тяжелые запросы Query Processor);</li><li>`IO` — отвечает за выполнение всех задач с блокирующими операциями (аутентификация, запись логов в файл);</li><li>`IC` — Interconnect, включает нагрузку, связанную с коммуникацией между узлами (системные вызовы для ожидания и отправки по сети данных, сериализация данных, разрезание и склеивание сообщений).</li></ul> `spin_threshold` | Количество тактов процессора перед уходом в сон при отсутствии сообщений. Состояние сна снижает энергопотребление, но может увеличивать latency запросов во время слабой нагрузки. `threads` | Количество ядер процессора, выделенных пулу.<br>Не рекомендуется суммарно назначать в пулы System, User, Batch, IC больше ядер, чем доступно в системе. +`max_threads` | Максимальное количество ядер процессора, которые могут быть выданы пулу в случае использования простаивающих ядер из других пулов. При выставлении параметра включается механизм увеличения размера пула при полном потреблении пула и наличия свободных ядер.<br>Проверка текущей нагрузки и перераспределение ядер происходит 1 раз в секунду. +`max_avg_ping_deviation` | Дополнительное условие для расширения пула по количеству ядер. При потреблении более чем 90% ядер процессора, выделенных пулу, требуется ухудшение показателя SelfPing более чем на `max_avg_ping_deviation` микросекунд от ожидаемых 10 миллисекунд. `time_per_mailbox_micro_secs` | Количество сообщений в каждом акторе, которое будет обработано перед переключением на другой актор. `type` | Тип пула. Одно из значений:<ul><li>`IO` — укажите для пула IO;</li><li>`BASIC` — укажите для всех остальных пулов.</li></ul> `scheduler` | Конфигурация шедулера. Шедулер акторной системы отвечает за доставку отложенных сообщений между акторами.<br>Не рекомендуется изменять параметры шедулера по умолчанию. |