Активация и создание групп ресурсов

По умолчанию при установке базы данных YMatrix политика управления ресурсами не включена.
Чтобы использовать группы ресурсов, установите параметр resource_scheduler='on'.

Активация групп ресурсов

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

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

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

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

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

Конфигурации по умолчанию для этих групп ресурсов следующие:

Parameter 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;