Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

CREATE RESOURCE GROUP

Определяет новую ресурсную группу.

Синтаксис

CREATE RESOURCE GROUP <name> WITH (<group_attribute>=<value> [, ... ])

где group_attribute может имет следующие значения:

CPU_RATE_LIMIT=<integer> | CPUSET='<master_cores>;<segment_cores>'
[ MEMORY_LIMIT=<integer> ]
[ CONCURRENCY=<integer> ]
[ MEMORY_SHARED_QUOTA=<integer> ]
[ MEMORY_SPILL_RATIO=<integer> ]
[ MEMORY_AUDITOR= {vmtracker | cgroup} ]

Описание

Команда CREATE RESOURCE GROUP создает новую ресурсную группу (resource group) для управления ресурсами Greengage DB. Вы можете создавать ресурсные группы для управления ресурсами ролей или для управления ресурсами внешнего компонента Greengage DB, такого как PL/Container.

Ресурсная группа, которую вы создаете для управления пользовательской ролью, определяет ограничения на количество параллельных транзакций, память и процессор для роли, когда включены ресурсные группы. Такие ресурсные группы можно назначать одной или нескольким ролям.

Ресурсная группа, которую вы создаете для управления ресурсами внешнего компонента Greengage DB, такого как PL/Container, определяет ограничения по памяти и процесору для компонента, когда включены ресурсные группы. Эти ресурсные группы используют cgroups как для управления ресурсами процессора и памятью. Назначение ресурсных групп внешним компонентам зависит от конкретного компонента. Например, вы назначаете ресурсную группу PL/Container при настройке среды выполнения PL/Container. Вы не можете назначить ресурсной группе, созданной для внешних компонентов, роли, а также не можете назначить ресурсную группу, созданную для ролей, внешнему компоненту.

Чтобы создать ресурсную группу, у вас должны быть привилегии SUPERUSER. Максимальное количество ресурсных групп, разрешенное в кластере Greengage DB, равно 100.

Greengage DB предварительно определяет две ресурсные группы по умолчанию: admin_group и default_group. Эти имена групп, а также имя группы none, зарезервированы.

Чтобы задать подходящие ограничения для ресурсных групп, администратор Greengage DB должен быть знаком с запросами, которые обычно выполняются в системе, а также с пользователями/ролями, выполняющими эти запросы, и внешними компонентами, которые они могут использовать, такими как PL/Containers.

После создания ресурсной группы для роли назначьте группу одной или нескольким ролям с помощью команд ALTER ROLE или CREATE ROLE.

После создания ресурсной группы для управления ресурсами процессора и памяти внешнего компонента настройте внешний компонент на использование этой ресурсной группы. Например, настройте параметр resource_group_id среды выполнения PL/Container.

Параметры

Параметр Описание

name

Имя ресурсной группы

CONCURRENCY <integer>

Максимальное количество параллельных транзакций (включая активные и бездействующие транзакции), разрешенное для ресурсных групп, назначенных ролям. Значение CONCURRENCY должно быть целым числом в диапазоне [0 .. <max_connections>]. Значение CONCURRENCY по умолчанию для ресурсной группы, созданной для ролей, равно 20.

Для ресурсных групп, создаваемых для внешних компонентов, необходимо установить значение CONCURRENCY, равное нулю (0).

ПРИМЕЧАНИЕ

Значение CONCURRENCY для admin_group не может быть равно нулю (0).

CPU_RATE_LIMIT <integer>
CPUSET <master_cores>;<segment_cores>

Обязательный параметр. При создании ресурсной группы необходимо указать либо CPU_RATE_LIMIT, либо CPUSET, но не оба одновременно.

CPU_RATE_LIMIT — это процент ресурсов процессора, который следует выделить этой ресурсной группе. Минимальный процент процессора для ресурсной группы равен 1. Максимальный — 100. Сумма значений CPU_RATE_LIMIT всех ресурсных групп, определенных в кластере Greengage DB, не должна превышать 100.

CPUSET указывает ядра процессора, которые нужно зарезервировать для этой ресурсной группы на мастер-хосте и хостах сегментов. Указанные ядра процессора должны быть доступны в системе и не могут пересекаться с ядрами процессора, указанными для других ресурсных групп.

Задавайте ядра в виде списка, разделенного запятыми, содержащего одиночные номера ядер или интервалы номеров ядер. Сначала задайте ядра хоста мастера, затем ядра сегментных хостов, и разделите эти две части точкой с запятой. Полную конфигурацию ядер необходимо заключить в одинарные кавычки. Например, '1;1,3-4' настраивает ядро 1 для хоста мастера и ядра 1, 3 и 4 для сегментных хостов. Настроить CPUSET для ресурсной группы можно только после включения управления ресурсами на основе ресурсных групп для кластера Greengage DB

MEMORY_LIMIT <integer>

Общий процент ресурсов памяти Greengage DB, который следует зарезервировать для этой ресурсной группы. Минимальный процент памяти для ресурсной группы равен 0. Максимальный — 100. Значение по умолчанию равно 0.

Когда MEMORY_LIMIT равен 0, Greengage DB не резервирует память для ресурсной группы, но использует глобальную общую память для выполнения всех запросов памяти в группе. Если MEMORY_LIMIT равен 0, MEMORY_SPILL_RATIO также должен быть равен 0.

Сумма значений MEMORY_LIMIT всех ресурсных групп, определенных в кластере Greengage DB, не должна превышать 100

MEMORY_SHARED_QUOTA <integer>

Квота разделяемой памяти в ресурсной группе. Группы с установленным порогом MEMORY_SHARED_QUOTA выделяют процент памяти, назначенной ресурсной группе, для совместного использования между транзакциями. Разделяемая память выделяется по мере доступности по принципу "первым пришел — первым получил" (first-come, first-served). Транзакция может использовать ничего, часть или всю эту память. Минимальный процент квоты разделяемой памяти, который можно указать для ресурсной группы, равен 0. Максимальный — 100. Значение MEMORY_SHARED_QUOTA по умолчанию равно 80

MEMORY_SPILL_RATIO <integer>

Порог использования памяти для операторов, интенсивно использующих память, в транзакции. При достижении этого порога транзакция выполняет сброс (spill) на диск. Вы можете указать целочисленное процентное значение от 0 до 100 включительно. Значение по умолчанию равно 0. Когда MEMORY_SPILL_RATIO равен 0, Greengage DB использует значение параметра конфигурации сервера statement_mem для управления начальной памятью оператора запроса

MEMORY_AUDITOR {vmtracker | cgroup}

Аудитор памяти для ресурсной группы. Greengage DB использует отслеживание виртуальной памяти для ресурсов ролей и отслеживание памяти cgroup для ресурсов, используемых внешними компонентами. Значение MEMORY_AUDITOR по умолчанию — vmtracker. Когда вы создаете ресурсную группу с аудитом памяти vmtracker, Greengage DB отслеживает память этой ресурсной группы внутренними средствами.

Когда вы создаете ресурсную группу, указав MEMORY_AUDITOR равным cgroup, Greengage DB передает учет памяти, используемой этой ресурсной группой, механизму cgroups. Для ресурсной группы, которую вы создаете для внешних компонентов, таких как PL/Container, значение CONCURRENCY должно быть равно нулю (0). Вы не можете назначить ресурсную группу, созданную для внешних компонентов, роли Greengage DB

Примечания

Нельзя выполнять команду CREATE RESOURCE GROUP внутри явной транзакции или подтранзакции.

Используйте системное представление gp_toolkit.gp_resgroup_config, чтобы показать настройки ограничений для всех ресурсных групп:

SELECT * FROM gp_toolkit.gp_resgroup_config;

Примеры

Создать ресурсную группу с ограничениями по CPU и памяти в процентах, равными 35:

CREATE RESOURCE GROUP rgroup1 WITH (
    CPU_RATE_LIMIT = 35,
    MEMORY_LIMIT = 35
    );

Создать ресурсную группу с ограничением параллельных транзакций 20, ограничением памяти 15 и ограничением CPU 25:

CREATE RESOURCE GROUP rgroup2 WITH (
    CONCURRENCY = 20,
    MEMORY_LIMIT = 15,
    CPU_RATE_LIMIT = 25
    );

Создать ресурсную группу для управления ресурсами PL/Container, указав ограничение памяти 10 и ограничение CPU 10:

CREATE RESOURCE GROUP plc_run1 WITH (
    MEMORY_LIMIT =10,
    CPU_RATE_LIMIT =10,
    CONCURRENCY =0,
    MEMORY_AUDITOR = cgroup
    );

Создать ресурсную группу с ограничением памяти в процентах, равным 11, и назначить ей ядро CPU 1 на хосте мастера и ядра 1–3 на сегментных хостах:

CREATE RESOURCE GROUP rgroup3 WITH (
    CPUSET = '1;1-3',
    MEMORY_LIMIT = 11
    );

Совместимость

CREATE RESOURCE GROUP является расширением Greengage DB. Ресурсные группы и управление ресурсами не предусмотрены в стандарте SQL.

См. также