diff options
author | kruall <kruall@ydb.tech> | 2023-03-29 12:53:53 +0300 |
---|---|---|
committer | kruall <kruall@ydb.tech> | 2023-03-29 12:53:53 +0300 |
commit | 98d8d4770f77f33188bb1f38be51e6ac398ef1fd (patch) | |
tree | 90f74a083bfeb44742914e2d174a280ae192fd1c | |
parent | d7902a2e7ea2f740aa0ad87f9d060de555e5b9d5 (diff) | |
download | ydb-98d8d4770f77f33188bb1f38be51e6ac398ef1fd.tar.gz |
Add info about as14 and autoconfig,
-rw-r--r-- | ydb/docs/ru/core/deploy/configuration/config.md | 41 |
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`. |