ALTER RESOURCE GROUP
Изменяет ограничения ресурсной группы.
Синтаксис
ALTER RESOURCE GROUP <name> SET <group_attribute> <value>
где group_attribute может быть одним из:
CONCURRENCY <integer>
CPU_RATE_LIMIT <integer>
CPUSET <master_cores>;<segment_cores>
MEMORY_LIMIT <integer>
MEMORY_SHARED_QUOTA <integer>
MEMORY_SPILL_RATIO <integer>
Описание
ALTER RESOURCE GROUP изменяет ограничения ресурсной группы.
Только суперпользователь может изменять ресурсную группу.
Вы можете установить или сбросить ограничение параллелизма для ресурсной группы, созданной для ролей, чтобы контролировать максимальное количество активных параллельных операторов в этой группе. Вы также можете сбросить ресурсы памяти или процессора для ресурсной группы, чтобы контролировать объем ресурсов памяти или процессора, которые могут потреблять все запросы, отправленные через эту группу, на каждом хосте сегмента.
Когда вы изменяете режим управления ресурсами процессора или лимит для ресурсной группы, новый режим или лимит применяется немедленно.
Когда вы изменяете лимит памяти для ресурсной группы, созданной для ролей, новый лимит ресурсов применяется немедленно, если текущее использование ресурсов меньше или равно новому значению и в ресурсной группе нет запущенных транзакций. Если текущее использование ресурсов превышает новое значение лимита памяти или если в других ресурсных группах есть запущенные транзакции, которые удерживают часть ресурсов, то Greengage DB откладывает назначение нового лимита до тех пор, пока использование ресурсов не попадет в диапазон нового значения.
Когда вы увеличиваете лимит памяти для ресурсной группы, созданной для внешних компонентов, новый лимит ресурсов вводится поэтапно по мере появления доступных ресурсов системной памяти. Если вы уменьшаете лимит памяти для ресурсной группы, созданной для внешних компонентов, поведение зависит от компонента. Например, если вы уменьшаете лимит памяти для ресурсной группы, созданной для среды выполнения PL/Container, запросы в работающем контейнере могут завершиться с ошибкой нехватки памяти.
Вы можете изменить один тип ограничения в одном вызове ALTER RESOURCE GROUP.
Параметры
| Параметр | Описание |
|---|---|
name |
Имя ресурсной группы для изменения |
CONCURRENCY <integer> |
Максимальное количество параллельных транзакций, включая активные и бездействующие транзакции, разрешенное для ресурсных групп, назначенных ролям.
Любые транзакции, отправленные после достижения лимита значения |
CPU_RATE_LIMIT <integer> |
Процент ресурсов процессора, выделяемых этой ресурсной группе.
Минимальный процент процессора для ресурсной группы равен |
CPUSET <master_cores>;<segment_cores> |
Ядра процессора, которые нужно зарезервировать для этой ресурсной группы на мастер-хосте и хостах сегментов.
Ядра процессора, которые вы указываете, должны быть доступны в системе и не могут перекрываться с какими-либо ядрами процессора, которые вы указываете для других ресурсных групп.
Указывайте ядра в виде списка номеров отдельных ядер или интервалов ядер, разделенных запятыми.
Сначала определите ядра мастер-хоста, затем ядра хостов сегментов и разделите их точкой с запятой.
Вы должны заключить полную конфигурацию ядер в одинарные кавычки.
Например, |
MEMORY_LIMIT <integer> |
Процент ресурсов памяти Greengage DB, которые нужно зарезервировать для этой ресурсной группы.
Минимальный процент памяти для ресурсной группы равен 0.
Максимальный — |
MEMORY_SHARED_QUOTA <integer> |
Процент ресурсов памяти для совместного использования между транзакциями в ресурсной группе.
Минимальный процент общей квоты памяти для ресурсной группы равен 0.
Максимальный — |
MEMORY_SPILL_RATIO <integer> |
Порог использования памяти для операторов, интенсивно использующих память, в транзакции.
Вы можете указать целочисленное процентное значение от |
Примечания
Используйте CREATE ROLE или ALTER ROLE, чтобы назначить определенную ресурсную группу роли (пользователю).
Нельзя отправить команду ALTER RESOURCE GROUP в явной транзакции или подтранзакции.
Примеры
Изменить лимит активных транзакций для ресурсной группы:
ALTER RESOURCE GROUP rgroup1 SET CONCURRENCY 13;
Обновить лимит процессора для ресурсной группы:
ALTER RESOURCE GROUP rgroup2 SET CPU_RATE_LIMIT 45;
Обновить лимит памяти для ресурсной группы:
ALTER RESOURCE GROUP rgroup3 SET MEMORY_LIMIT 30;
Обновить коэффициент сброса памяти на диск (spill ratio) для ресурсной группы:
ALTER RESOURCE GROUP rgroup4 SET MEMORY_SPILL_RATIO 25;
Зарезервировать ядро процессора 1 для ресурсной группы на мастер-хосте и всех хостах сегментов:
ALTER RESOURCE GROUP rgroup5 SET CPUSET '1;1';
Совместимость
Оператор ALTER RESOURCE GROUP является расширением Greengage DB.
Этой команды нет в стандартном PostgreSQL.