Ресурсные группы
Ресурсные группы позволяют пользователям с ролью mdb_admin
устанавливать квоты на выделяемые для обработки запросов ресурсы:
- вычислительные ресурсы CPU;
- объем оперативной памяти;
- количество одновременных транзакций.
В ресурсную группу может входить несколько ролей, квоты для них будут общими.
Greenplum® получает от пользователя запрос на транзакцию и сопоставляет необходимые для ее выполнения ресурсы со свободными квотами в ресурсной группе. Если квот достаточно, выполнение запроса начинается немедленно. Если квот не хватает, запрос ожидает, пока выполнение других запросов не будет завершено и ресурсы не освободятся. Очередь запросов устроена по принципу «первый вошел — первый обслужен».
Параметры ресурсных групп
Каждая ресурсная группа обладает следующим набором параметров:
Название | Описание |
---|---|
MEMORY_AUDITOR |
Средство контроля памяти, используемое ресурсной группой. В Managed Service for Greenplum® по умолчанию используется значение vmtracker . |
CONCURRENCY |
Максимальное количество транзакций, обрабатываемых в ресурсной группе одновременно. Включает в себя активные транзакции и транзакции в режиме ожидания. Значение по умолчанию — 20 . |
CPU_RATE_LIMIT |
Зарезервированная доля (%) ресурсов CPU на сегменте. Минимальное значение — 1 , максимальное значение — 100 . Автоматически сбрасывается на -1 , если задан параметр CPUSET . |
CPUSET |
Зарезервированные номера ядер CPU. Номера или интервалы задаются в кавычках, например: '1,3-4' . Указанные номера должны существовать в системе и не могут совпадать с номерами, зарезервированными для других ресурсных групп. Автоматически сбрасывается на -1 , если задан параметр CPU_RATE_LIMIT . |
MEMORY_LIMIT |
Зарезервированная доля (%) оперативной памяти на сегменте. Минимальное значение — 0 (по умолчанию), максимальное значение — 100 . При значении 0 ресурсная группа сможет использовать только незарезервированную память для выполнения запросов. Сумма значений MEMORY_LIMIT всех ресурсных групп не должна превышать 100 . |
MEMORY_SHARED_QUOTA |
Доля зарезервированной памяти MEMORY_LIMIT (%), которая может использоваться всеми транзакциями ресурсной группы по мере необходимости. Минимальное значение — 1 , максимальное значение — 100 , по умолчанию — 80 . Подробнее см. в разделе Особенности распределения оперативной памяти. |
MEMORY_SPILL_RATIO |
Пороговая доля оперативной памяти, которую может занять один оператор транзакции. Если эта доля превышена, то для обработки оператора создаются временные файлы на диске. Минимальное значение — 0 (по умолчанию), максимальное значение — 100 . Если MEMORY_LIMIT равно 0 , то значение этого параметра также должно быть равно 0 . |
Ресурсные группы по умолчанию
С момента создания кластера Managed Service for Greenplum® в нем присутствует три ресурсные группы:
-
admin_group
— служебная группа, назначенная служебным ролямmonitor
иgpadmin
. -
mdb_admin_group
— группа для администраторов. По умолчанию назначена пользователю-администратору, логин и пароль которого заданы при создании кластера.Если администратор и другие пользователи входят в одну ресурсную группу, и ресурсы в ней окажутся исчерпаны, то администратор не сможет подключиться к базе данных и вручную прервать ресурсоемкие процессы. Поэтому данную ресурсную группу рекомендуется назначать только пользователям с ролью
mdb_admin
. -
default_group
— общая группа. Будет назначена новой роли, если для нее явно не задана другая ресурсная группа.
Значения параметров ресурсных групп по умолчанию:
Параметр | admin_group |
mdb_admin_group |
default_group |
---|---|---|---|
MEMORY_AUDITOR |
vmtracker |
vmtracker |
vmtracker |
CONCURRENCY |
10 |
20 |
20 |
CPU_RATE_LIMIT |
10 |
1 |
30 |
CPUSET |
-1 |
-1 |
-1 |
MEMORY_LIMIT |
10 |
0 |
0 |
MEMORY_SHARED_QUOTA |
80 |
80 |
80 |
MEMORY_SPILL_RATIO |
0 |
0 |
0 |
Значения параметров ресурсной группы admin_group
нельзя изменить.
Подробнее об управлении ролями см. в разделе Пользователи и роли и в документации Greenplum®
Особенности распределения оперативной памяти
-
Для каждой ресурсной группы можно зарезервировать долю оперативной памяти сегмента (параметр
MEMORY_LIMIT
). Эта доля делится на общую квоту и гарантированную квоту:-
Общая квота задается параметром
MEMORY_SHARED_QUOTA
и ее могут использовать все транзакции в ресурсной группе. Greenplum® выдает общую квоту транзакциям по принципу «первый вошел — первый обслужен». -
Гарантированная квота резервируется для каждой транзакции и вычисляется по формуле:
(MEMORY_LIMIT − MEMORY_SHARED_QUOTA)/CONCURRENCY
.
-
-
Если сумма значений
MEMORY_LIMIT
всех ресурсных групп меньше100
, то Greenplum® выделяет незарезервированную оперативную память любым транзакциям любых ресурсных групп по принципу «первый вошел — первый обслужен».Транзакция использует незарезервированную оперативную память при соблюдении двух условий:
- гарантированная доля памяти для транзакции заполнена;
- общая квота ресурсной группы закончилась.
Для стабильной и эффективной работы кластера рекомендуется оставлять незарезервированной 10–20% оперативной памяти.
Особенности распределения ресурсов CPU
Существует два способа выделить ресурсы CPU ресурсной группе:
-
(Рекомендованный) Указать долю ресурсов CPU сегмента, которая будет доступна для ресурсной группы (параметр
CPU_RATE_LIMIT
).В Managed Service for Greenplum® используется режим управления, при котором вычислительные ресурсы CPU простаивающих ресурсных групп перераспределяются в пользу ресурсных групп с высокой загрузкой. Если ресурсная группа выходит из простоя, то перераспределенные ресурсы CPU возвращаются к ней.
-
Указать конкретные номера ядер CPU, которые будут использоваться ресурсной группой (параметр
CPUSET
). Эти ядра станут недоступны для других ресурсных групп — если ресурсная группа не обрабатывает транзакции, то зарезервированные ядра окажутся в простое. Рекомендуется свести к минимуму количество таких ресурсных групп.Для стабильной работы кластера не рекомендуется резервировать ядро с номером
0
.
Эти два способа можно использовать одновременно для разных ресурсных групп, а также переключать в процессе работы кластера.
Подробнее о работе ресурсных групп см. в документации Greenplum®
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.