Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Определяет новую группу ресурсов.
CREATE RESOURCE GROUP name WITH (group_attribute=value [, ... ])
где group_attribute — один из следующих:
[ CONCURRENCY=<integer> ]
CPU_MAX_PERCENT=<integer> | CPUSET=<coordinator_cores>;<segment_cores>
[ CPU_WEIGHT=<integer> ]
[ MEMORY_QUOTA=<integer> ]
[ MIN_COST=<integer> ]
[ IO_LIMIT=' <tablespace_io_limit_spec> [; ...] ' ]
Где <tablespace_io_limit_spec>:
CODE_BLOCк_2
Где <io_limit_option_spec>:
wbps=<io_limit_option_value>
| rbps=<io_limit_option_value>
| wiops=<io_limit_option_value>
| riops=<io_limit_option_value>
Где <io_limit_option_vlaue>:
<integer> | max
Создаёт новую группу ресурсов для управления ресурсами в YMatrix Database. Вы можете создавать группы ресурсов для управления ресурсами ролей или для управления ресурсами внешнего компонента YMatrix Database, например PL/Container.
Группа ресурсов, созданная для управления ролью пользователя, определяет лимиты на одновременные транзакции, память, ЦП и дисковый ввод-вывод для этой роли при включённом режиме управления ресурсами с помощью групп ресурсов. Такие группы ресурсов можно назначать одной или нескольким ролям.
Группа ресурсов, созданная для управления ресурсами внешнего компонента YMatrix Database (например, PL/Container), определяет лимиты по ЦП для этого компонента при включённом режиме управления ресурсами с помощью групп ресурсов. Эти группы ресурсов используют cgroups для управления загрузкой ЦП. Назначение групп ресурсов внешним компонентам зависит от конкретного компонента. Например, вы указываете группу ресурсов PL/Container при настройке среды выполнения PL/Container. Группу ресурсов, созданную для внешних компонентов, нельзя назначить роли, так же как и группу ресурсов, созданную для ролей, нельзя назначить внешнему компоненту.
Для создания группы ресурсов необходимо обладать привилегией SUPERUSER. Максимальное количество групп ресурсов в кластере YMatrix Database — 100.
YMatrix Database предварительно определяет три группы ресурсов по умолчанию: admin_group, default_group и system_group. Эти имена групп, а также имя none, являются зарезервированными.
Чтобы установить подходящие лимиты для групп ресурсов, администратор YMatrix Database должен знать типичные запросы, выполняемые в системе, пользователей/роли, запускающие эти запросы, и используемые ими внешние компоненты, такие как PL/Container.
После создания группы ресурсов для роли назначьте её одной или нескольким ролям с помощью команд ALTER ROLE или CREATE ROLE.
После создания группы ресурсов для управления ресурсами ЦП внешнего компонента настройте этот компонент на использование данной группы ресурсов. Например, задайте параметр resource_group_id для среды выполнения PL/Container.
name
CONCURRENCY integer
Необязательно. Максимальное количество одновременных транзакций (включая активные и простаивающие), разрешённых для этой группы ресурсов. Значение CONCURRENCY должно быть целым числом в диапазоне [0 .. max_connections]. Значение по умолчанию для групп ресурсов, определённых для ролей, — 20.
Для групп ресурсов, созданных для внешних компонентов, значение CONCURRENCY должно быть установлено в 0.
Примечание!
Нельзя установить значение CONCURRENCY для группы admin_group равным 0.
CPU_MAX_PERCENT integer
CPU_WEIGHT integer
100.CPUSET <coordinator_cores>;<segment_cores>
CPUSET определяет ядра ЦП, зарезервированные для этой группы ресурсов на координаторе и на хостах сегментов. Указанные ядра должны быть доступны в системе и не могут пересекаться с ядрами, назначенными другим группам ресурсов.
Примечание!
При создании группы ресурсов необходимо указать либо CPU_MAX_PERCENT, либо CPUSET, но не оба параметра одновременно.
Ядра указываются в виде списка номеров ядер, разделённых запятыми, или интервалов номеров ядер. Сначала указываются ядра координатора, затем — ядра сегментов, разделённые точкой с запятой. Вся конфигурация ядер должна быть заключена в одинарные кавычки. Например, '1;1,3-4' означает ядро 1 для координатора и ядра 1, 3 и 4 для хостов сегментов.
Настроить CPUSET для группы ресурсов можно только после включения управления ресурсами на основе групп ресурсов в вашем кластере Greenplum Database.
IO_LIMIT='<tablespace_io_limit_spec> [; ...]'
Где <tablespace_io_limit_spec>:
<tablespace_name> | <oid> : <io_limit_option_spec> [, ...]
Где <io_limit_option_spec>:
wbps=<io_limit_option_value>
| rbps=<io_limit_option_value>
| wiops=<io_limit_option_value>
| riops=<io_limit_option_value>
Где <io_limit_option_vlaue>:
<integer> | max
При использовании этого параметра можно указать:
Если параметр IO_LIMIT не задан, значения rbps, wbps, riops и wiops по умолчанию устанавливаются в max, то есть ограничения на дисковый ввод-вывод отсутствуют. В этом случае системное представление gp_toolkit.gp_resgroup_config отображает их значение как -1.
Примечание!
Параметр IO_LIMIT доступен только при использовании Linux Control Groups v2. Дополнительную информацию см. в разделе Использование групп ресурсов.
MEMORY_QUOTA integer
Необязательно. Максимальный объём памяти в МБ, который резервируется для этой группы ресурсов. Это значение определяет общий объём памяти, который все рабочие процессы внутри группы ресурсов могут потреблять на хосте сегмента во время выполнения запроса.
Минимальное значение памяти, которое можно указать для группы ресурсов, — 0. Значение по умолчанию — -1.
Если указано MEMORY_QUOTA со значением -1, используется значение параметра конфигурации сервера statement_mem.
Примечание!
Если задан параметр конфигурации сервера gp_resgroup_memory_query_fixed_mem, его значение переопределяет значение MEMORY_QUOTA на уровне сессии.
MIN_COST integer
Это означает, что запросы с низкой стоимостью будут выполняться быстрее, поскольку они не подвергаются ограничениям ресурсов.
Диапазон значений — от 0 до 500. Значение по умолчанию — 0, что означает, что стоимость не используется для обхода ограничений группы ресурсов.
Команду CREATE RESOURCE GROUP нельзя выполнять внутри явной транзакции или подтранзакции.
Для просмотра настроенных лимитов всех групп ресурсов используйте системное представление gp_toolkit.gp_resgroup_config:
SELECT * FROM gp_toolkit.gp_resgroup_config;
Создание группы ресурсов с лимитом ЦП и квотой памяти 350 МБ:
CREATE RESOURCE GROUP rgroup1 WITH (CPU_MAX_PERCENT=35, MEMORY_QUOTA=350);
Создание группы ресурсов с лимитом одновременных транзакций 20, квотой памяти 1500 МБ, лимитом ЦП 25 и ограничениями дискового ввода-вывода для tablespace pg_default:
CREATE RESOURCE GROUP rgroup2 WITH (CONCURRENCY=20,
MEMORY_QUOTA=1500, CPU_MAX_PERCENT=25,
IO_LIMIT=’pg_default: wbps=1000, rbps=1000, wiops=100, riops=100’);
Создание группы ресурсов с лимитом одновременных транзакций 20, квотой памяти 1500 МБ, лимитом ЦП 25 и ограничениями дискового ввода-вывода для tablespace с OID 1663:
CREATE RESOURCE GROUP rgroup2 WITH (CONCURRENCY=20,
MEMORY_QUOTA=1500, CPU_MAX_PERCENT=25,
IO_LIMIT=’1663: wbps=1000, rbps=1000, wiops=100, riops=100’);
Создание группы ресурсов с квотой памяти 110 МБ, которой назначено ядро ЦП 1 на координаторе и ядра 1–3 на хостах сегментов:
CREATE RESOURCE GROUP rgroup3 WITH (CPUSET='1;1-3', MEMORY_QUOTA=110);
CREATE RESOURCE GROUP является расширением YMatrix. В стандарте SQL нет аналогов групп ресурсов или управления ресурсами таким образом.
ALTER ROLE,CREATE ROLE,ALTER RESOURCE GROUP, DROP RESOURCE GROUP