aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkruall <kruall@ydb.tech>2023-03-29 12:53:53 +0300
committerkruall <kruall@ydb.tech>2023-03-29 12:53:53 +0300
commit98d8d4770f77f33188bb1f38be51e6ac398ef1fd (patch)
tree90f74a083bfeb44742914e2d174a280ae192fd1c
parentd7902a2e7ea2f740aa0ad87f9d060de555e5b9d5 (diff)
downloadydb-98d8d4770f77f33188bb1f38be51e6ac398ef1fd.tar.gz
Add info about as14 and autoconfig,
-rw-r--r--ydb/docs/ru/core/deploy/configuration/config.md41
1 files changed, 38 insertions, 3 deletions
diff --git a/ydb/docs/ru/core/deploy/configuration/config.md b/ydb/docs/ru/core/deploy/configuration/config.md
index b97cb74611..9e52305680 100644
--- a/ydb/docs/ru/core/deploy/configuration/config.md
+++ b/ydb/docs/ru/core/deploy/configuration/config.md
@@ -18,7 +18,7 @@ host_configs:
type: <type>
- path: ...
- host_config_id: 2
- ...
+ ...
```
Атрибут `host_config_id` задает числовой идентификатор конфигурации. В атрибуте `drive` содержится коллекция описаний подключенных дисков. Каждое описание состоит из двух атрибутов:
@@ -182,7 +182,7 @@ State Storage (хранилище состояний) -- это независи
Обычно State Storage не требует масштабирования в целях повышения производительности, поэтому количество узлов в нём следует делать как можно меньшим с учетом необходимого уровня отказоустойчивости.
-Доступность State Storage является ключевой для кластера YDB, так как влияет на все базы данных, независимо от того какие пулы хранения в них используются.Для обеспечения отказоустойчивости State Storate его узлы должны быть выбраны таким образом, чтобы гарантировать рабочее большинство в случае ожидаемых отказов.
+Доступность State Storage является ключевой для кластера YDB, так как влияет на все базы данных, независимо от того какие пулы хранения в них используются.Для обеспечения отказоустойчивости State Storate его узлы должны быть выбраны таким образом, чтобы гарантировать рабочее большинство в случае ожидаемых отказов.
Для выбора узлов State Storage можно воспользоваться следующими рекомендациями:
@@ -378,24 +378,51 @@ domains_config:
## Акторная система {#actor-system}
-В секции `actor_system_config` указывается, какое количество ядер CPU узла выделить различным подсистемам кластера {{ ydb-full-name }}.
+В секции `actor_system_config` указывается количество ядер CPU отданных процессу и тип узла в случае использования автоконфигурации акторсистемы, либо через тонкую настройку указываются количество ядер CPU для каждой подсистемы кластера {{ ydb-full-name }}.
+
+Рекомендуется пользоваться автоконфигурацией.
+Переходить к тонкой настройки стоит, если какой-нибудь пул акторной системы начинает перегружаться и это влияет на перфоманс базы.
+Увидеть перегрузку пулов можно на [странице мониторинга в Embedded UI](../../maintenance/embedded_monitoring/ydb_monitoring.md#node_list_page).
Основной потребитель CPU — акторная система. Все акторы, в зависимости от своего типа, выполняются в одном из пулов (параметр `name`). Конфигурирование заключается в распределении ядер процессора узла по пулам акторной системы. При выделении процессорных ядер пулам нужно учитывать, что PDisk и gRPC API работают вне акторной системы и требуют отдельных ресурсов.
+### Настройка через автоконфигурацию акторсистемы
+
+```bash
+actor_system_config:
+ use_auto_config: true
+ node_type: STORAGE
+ cpu_count: 10
+```
+
+
+Параметр | Описание
+--- | ---
+`use_auto_config` | Флаг для включения автоконфигурации акторсистемы, без нее нижеописанные параметры не работают.
+`node_type` | Тип узла определяет ожидаемую нагрузку и соотношение ядер CPU между пулами: <ul><li>`STORAGE` — предназначен для узлов работающие с блочными устройствами и отввечающие за работу распределенного хранилища {{ ydb-full-name }};</li><li>`COMPUTE` — обслуживает пользовательскую нагрузку;</li><li>`HYBRID` — для узлов со смешанной нагрузкой или узлов, у которых потребление `System`, `User` и `IC` под нагрузкой примерно сравнима.
+`cpu_count` | Количество ядер выделенных узлу.
+
+### Тонкая настройка
+
+Так же можно распределить количество ядер между пулами вручную.
+
```yaml
actor_system_config:
executor:
- name: System
spin_threshold: 0
threads: 2
+ max_threads: 6
type: BASIC
- name: User
spin_threshold: 0
threads: 3
+ max_threads: 9
type: BASIC
- name: Batch
spin_threshold: 0
threads: 2
+ max_threads: 4
type: BASIC
- name: IO
threads: 1
@@ -404,6 +431,8 @@ actor_system_config:
- name: IC
spin_threshold: 10
threads: 1
+ max_threads: 3
+ max_avg_ping_deviation: 500
time_per_mailbox_micro_secs: 100
type: BASIC
scheduler:
@@ -418,12 +447,18 @@ 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` | Максимальное количество ядер процессора, которые могут быть выданы пулу в случае использования простаивающих ядер из других пулов. При выставлении параметра включается механизм увеличения размера пула при полном потреблении пула и наличия свободных ядер.
+`max_avg_ping_deviation` | Дополнительное условие для расширения пула по количеству ядер.<br>Дополнительно к потреблению более чем 90% ядер процессора выделенных пулу требуется ухудшение показателя SelfPing более чем на `max_avg_ping_deviation` микросекунд от ожидаемых 10 миллисекунд.
`time_per_mailbox_micro_secs` | Количество сообщений в каждом акторе, которое будет обработано перед переключением на другой актор.
`type` | Тип пула. Одно из значений:<ul><li>`IO` — укажите для пула IO;</li><li>`BASIC` — укажите для всех остальных пулов.</li></ul>
`scheduler` | Конфигурация шедулера. Шедулер акторной системы отвечает за доставку отложенных сообщений между акторами.<br>Не рекомендуется изменять параметры шедулера по умолчанию.
`progress_threshold` | В акторной системе есть возможность запросить отправку сообщения в будущем по расписанию. Возможна ситуация, когда в определенный момент времени системе не удастся отправить все запланированные сообщения. В этом случае система начинает рассылать сообщения в «виртуальном времени», обрабатывая в каждом цикле отправку сообщений за период, не превышающий `progress_threshold` в микросекундах, и продвигая виртуальное время на `progress_threshold`, пока оно не догонит реальное.
`resolution` | При составлении расписания отправки сообщений используются дискретные временные слоты. Длительность слота задается параметром `resolution` в микросекундах.
+Раз в секунду акторная система смотрит на загрузку пулов и может увеличить количество ядер используемых пулом в зависимости от нагрузки и недоутилизации ядер другими пулами.
+
+В случае переподписки по ядрам, дополнительно выделенные ядра будут отобраны в течении секунда.
+
## blob_storage_config — статическая группа кластера {#blob-storage-config}
Укажите конфигурацию статической группы кластера. Статическая группа необходима для работы базовых таблеток кластера, в том числе `Hive`, `SchemeShard`, `BlobstorageContoller`.