Включение и создание

Включение групп ресурсов

  1. Установите параметр серверной конфигурации gp_resource_manager в значение "group":
gpconfig -c gp_resource_manager -v "group"
  1. Перезапустите кластер баз данных YMatrix:
mxstop
mxstart

После включения все транзакции, отправленные ролью, направляются в группу ресурсов, назначенную этой роли. Они подчиняются ограничениям группы по уровню параллелизма, объёму памяти и использованию ЦП.

YMatrix автоматически создаёт три встроенные ролевые группы ресурсов: admin_group, default_group и system_group. При включённых группах ресурсов любая роль, которой явно не назначена группа ресурсов, попадает в одну из этих групп в зависимости от её типа:

  • Роли с привилегией SUPERUSER назначаются в admin_group.
  • Роли без административных привилегий назначаются в default_group.
  • Системные процессы управляются в рамках system_group.

Примечание: Нельзя вручную назначить какую-либо роль в system_group.

Значения параметров по умолчанию для этих ролевых групп ресурсов приведены в таблице ниже:

Параметр admin_group default_group system_group
CONCURRENCY 10 5 0
CPU_MAX_PERCENT 10 20 10
CPU_WEIGHT 100 100 100
CPUSET -1 -1 -1
IO_LIMIT -1 -1 -1
MEMORY_LIMIT -1 -1 -1
MIN_COST 0 0 0

Создание групп ресурсов

Для создания новой группы ресурсов используйте команду CREATE RESOURCE GROUP. При создании группы ресурсов для ролей укажите имя группы и режим распределения ЦП (в ядрах или в процентах). Необходимо задать хотя бы одно из ограничений: CPU_MAX_PERCENT или CPUSET.

Пример
Создайте группу ресурсов rgroup1 с ограничением параллелизма 20, квотой памяти 250 МБ, весом ЦП 500 и минимальной стоимостью запроса 50:

CREATE RESOURCE GROUP rgroup1 WITH (CONCURRENCY=20, CPU_MAX_PERCENT=20, MEMORY_QUOTA=250, CPU_WEIGHT=500, MIN_COST=50);

Ограничения по ЦП и памяти, заданные для rgroup1, разделяются между всеми ролями, назначенными этой группе.

Для изменения ограничений существующей группы ресурсов используйте команду ALTER RESOURCE GROUP:

ALTER RESOURCE GROUP rg_role_light SET CONCURRENCY 7;
ALTER RESOURCE GROUP exec SET MEMORY_QUOTA 30;
ALTER RESOURCE GROUP rgroup1 SET CPUSET '1;2,4';

Примечание!
Значение параметра CONCURRENCY для admin_group нельзя установить или изменить на 0.

Удаление групп ресурсов

Для удаления группы ресурсов используйте команду DROP RESOURCE GROUP. Чтобы удалить группу ресурсов, назначенную ролям, убедитесь, что:

  • Ни одна роль не назначена этой группе.
  • В группе нет активных или ожидающих выполнения транзакций.
DROP RESOURCE GROUP exec;