Управление ресурсными группами
Вы можете управлять квотами на использование ресурсов кластера при помощи ресурсных групп.
Для выполнения операций с помощью SQL-запросов подключитесь к кластеру от имени пользователя с ролью mdb_admin.
Посмотреть информацию о ресурсных группах
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы посмотреть список ресурсных групп и значения их параметров, выполните команду:
yc managed-greenplum resource-groups list --cluster-id=<идентификатор_кластера>
Чтобы посмотреть значения параметров отдельной ресурсной группы, выполните команду:
yc managed-greenplum resource-groups get <имя_ресурсной_группы> \
--cluster-id=<идентификатор_кластера>
Вместо параметра --cluster-id можно использовать параметр --cluster-name, указав в нем имя кластера. Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Чтобы посмотреть список ресурсных групп и значения их параметров, выполните команду:
SELECT * FROM gp_toolkit.gp_resgroup_config;
Чтобы посмотреть список ролей и ресурсные группы, к которым они относятся, выполните команду:
SELECT rolname, rsgname FROM pg_roles, pg_resgroup
WHERE pg_roles.rolresgroup=pg_resgroup.oid;
Создать ресурсную группу
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Передайте имя ресурсной группы и значения ее параметров в команде:
yc managed-greenplum resource-groups create <имя_ресурсной_группы> \
--cluster-id=<идентификатор_кластера> \
--concurrency=<значение_параметра_CONCURRENCY> \
--cpu-rate-limit=<значение_параметра_CPU_RATE_LIMIT> \
--memory-limit=<значение_параметра_MEMORY_LIMIT> \
--memory-shared-quota=<значение_параметра_MEMORY_SHARED_QUOTA> \
--memory-spill-ratio=<значение_параметра_MEMORY_SPILL_RATIO>
При создании ресурсной группы достаточно указать значение ее параметра CPU_RATE_LIMIT. Для остальных параметров будут применены значения по умолчанию.
Вместо параметра --cluster-id можно использовать параметр --cluster-name, указав в нем имя кластера. Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Передайте имя ресурсной группы и ее параметры в команде:
CREATE RESOURCE GROUP <имя_ресурсной_группы> WITH (<параметр_1>, <параметр_2>, ...);
При создании ресурсной группы достаточно указать значение параметра CPU_RATE_LIMIT или CPUSET. Для остальных параметров будут применены значения по умолчанию.
Назначить ресурсную группу для роли
Чтобы создать роль и сразу назначить ей ресурсную группу, выполните команду:
CREATE ROLE <имя_роли> RESOURCE GROUP <имя_ресурсной_группы>;
Примечание
По умолчанию новые роли попадают в ресурсную группу default_group.
Чтобы назначить для роли другую ресурсную группу, выполните команду:
ALTER ROLE <имя_роли> RESOURCE GROUP <имя_ресурсной_группы>;
Посмотреть текущую загрузку ресурсных групп
Чтобы посмотреть текущую загрузку ресурсных групп во всем кластере, выполните команду:
SELECT * FROM gp_toolkit.gp_resgroup_status;
Чтобы посмотреть те же данные в разрезе хостов, используйте команду:
SELECT * FROM gp_toolkit.gp_resgroup_status_per_host;
Чтобы посмотреть те же данные в разрезе сегментов, используйте команду:
SELECT * FROM gp_toolkit.gp_resgroup_status_per_segment;
Посмотреть список запросов в ресурсных группах
Чтобы посмотреть список запросов на выполнении и в очереди, выполните команду:
SELECT query, waiting, rsgname, rsgqueueduration
FROM pg_stat_activity;
Изменить параметры ресурсной группы
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Передайте имя ресурсной группы и новые значения ее параметров, которые нужно изменить, в команде:
yc managed-greenplum resource-groups update <имя_ресурсной_группы> \
--cluster-id=<идентификатор_кластера> \
--concurrency=<новое_значение_параметра_CONCURRENCY> \
--cpu-rate-limit=<новое_значение_параметра_CPU_RATE_LIMIT> \
--memory-limit=<новое_значение_параметра_MEMORY_LIMIT> \
--memory-shared-quota=<новое_значение_параметра_MEMORY_SHARED_QUOTA> \
--memory-spill-ratio=<новое_значение_параметра_MEMORY_SPILL_RATIO>
Вместо параметра --cluster-id можно использовать параметр --cluster-name, указав в нем имя кластера. Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Передайте имя ресурсной группы и новые значения ее параметров, которые нужно изменить, в команде:
ALTER RESOURCE GROUP <имя_ресурсной_группы> SET <имя_параметра> <новое_значение_параметра>;
Параметры ресурсной группы, для которых не переданы новые значения, изменены не будут.
Удалить ресурсную группу
Ресурсную группу можно удалить, только если она не назначена никаким ролям и не содержит транзакций в очереди или на обработке.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы удалить ресурсную группу, выполните команду:
yc managed-greenplum resource-groups delete <имя_ресурсной_группы> \
--cluster-id=<идентификатор_кластера>
Вместо параметра --cluster-id можно использовать параметр --cluster-name, указав в нем имя кластера. Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Чтобы удалить ресурсную группу, выполните команду:
DROP RESOURCE GROUP <имя_ресурсной_группы>;
Пример создания ресурсной группы
Создайте ресурсную группу с тестовыми характеристиками:
- Имя
testgroup. - Максимальное количество обрабатываемых транзакций — 15.
- Доля используемых ресурсов CPU в сегменте — 10%.
- Доля оперативной памяти в сегменте — 20%.
- Доля, выделенная в качестве общей квоты, — 50%.
- Доля оперативной памяти в ресурсной группе, которую может занимать один оператор транзакции, — 30%.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Выполните команду:
yc managed-greenplum resource-groups create testgroup \
--cluster-id=<идентификатор_кластера> \
--concurrency=15 \
--cpu-rate-limit=10 \
--memory-limit=20 \
--memory-shared-quota=50\
--memory-spill-ratio=30
Проверьте, что новая ресурсная группа появилась в списке:
yc managed-greenplum resource-groups list --cluster-id=<идентификатор_кластера>
Выполните команду:
CREATE RESOURCE GROUP testgroup
WITH (CONCURRENCY=15, CPU_RATE_LIMIT=10, MEMORY_LIMIT=20, MEMORY_SHARED_QUOTA=50, MEMORY_SPILL_RATIO=30);
Проверьте, что новая ресурсная группа появилась в списке:
SELECT * FROM gp_toolkit.gp_resgroup_config;
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.