Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Группы ресурсов
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
В следующей таблице перечислены настраиваемые параметры групп ресурсов.
| Parameter | Описание | Допустимый диапазон | Значение по умолчанию |
|---|---|---|---|
| CONCURRENCY | Максимальное количество одновременных транзакций (активных и простаивающих), разрешённых в группе ресурсов. | [0 – max_connections] | 20 |
| CPU_MAX_PERCENT | Максимальный процент ресурсов ЦПУ, который может использовать группа ресурсов. | [1 – 100] | -1 (отключено) |
| CPU_WEIGHT | Вес приоритета планирования для группы ресурсов. | [1 – 500] | 100 |
| CPUSET | Конкретные логические ядра ЦПУ (или гиперпотоки), зарезервированные для группы ресурсов. | Зависит от системы | -1 |
| MEMORY_QUOTA | Лимит памяти (в МБ), выделяемой группе ресурсов. | Целое число (МБ) | -1 (отключено; используется statement_mem как лимит памяти на запрос) |
| MIN_COST | Минимальная стоимость плана запроса, необходимая для управления запросом через группу ресурсов. | Целое число | 0 |
| IO_LIMIT | Управляет использованием дискового ввода-вывода путём установки максимальной пропускной способности и IOPS для операций чтения/записи. Настраивается отдельно для каждого табличного пространства. | [2 – 4294967295 или max] |
-1 |
Примечание!
Группы ресурсов не применяются к командамSET,RESETиSHOW.
Когда пользователь выполняет запрос, YMatrix проверяет его на соответствие ограничениям, заданным для назначенной группы ресурсов.
CONCURRENCY ограничивает максимальное количество одновременных транзакций в группе ресурсов. Значение по умолчанию — 20. Значение 0 запрещает выполнение запросов в группе.
Если лимиты ресурсов не превышены и запрос не нарушает ограничение параллельности, YMatrix выполняет его немедленно.
Если достигнут лимит параллельности, последующие транзакции ставятся в очередь до завершения других запросов.
Параметр gp_resource_group_queuing_timeout определяет, как долго ожидающая транзакция может находиться в очереди перед отменой. Значение по умолчанию — 0, что означает неограниченное ожидание.
Обход ограничений групп ресурсов
gp_resource_group_bypass: при значении true обходит ограничения параллельности для текущего сеанса, позволяя немедленно выполнять запрос. Память выделяется согласно statement_mem. Если недостаточно памяти, запрос завершается ошибкой. Этот параметр действует только на уровне сеанса и не может использоваться внутри транзакции или функции.gp_resource_group_bypass_catalog_query: определяет, обходят ли запросы к каталогу ограничения групп ресурсов. Значение по умолчанию — true. Полезно для клиентов с графическим интерфейсом, выполняющих метаданные-запросы. Такие запросы работают вне групп ресурсов и используют statement_mem для выделения памяти.gp_resource_group_bypass_direct_dispatch: при значении true запросы с прямой диспетчеризацией (direct-dispatch) обходят ограничения ЦПУ и памяти своей группы ресурсов. Память выделяется через statement_mem, и запрос завершается ошибкой при нехватке памяти. Этот параметр действует только на уровне сеанса и не может использоваться внутри транзакций или функций.YMatrix поддерживает два режима выделения ЦПУ:
Разные группы ресурсов в одном кластере могут использовать разные режимы, но каждая группа использует только один режим одновременно. Режим можно изменить во время выполнения.
Параметр gp_resource_group_cpu_limit задаёт максимальный процент системных ресурсов ЦПУ, который может быть выделен группам ресурсов на каждом сегменте.
CPUSET указывает ядра ЦПУ, зарезервированные для группы ресурсов. При настройке CPUSET YMatrix отключает CPU_MAX_PERCENT и CPU_WEIGHT для этой группы и устанавливает оба значения в -1.
Примечания по использованию:
;) для разделения спецификаций ядер master и segment. Используйте запятые (,) для перечисления отдельных ядер или диапазонов, заключённых в одинарные кавычки. Пример: '1;1,3-4' назначает ядро 1 на master и ядра 1, 3 и 4 на сегментах.CPU_MAX_PERCENT устанавливает верхний предел использования ЦПУ на сегменте. Например, значение 40 позволяет использовать до 40% доступных ресурсов ЦПУ. Неиспользуемое процессорное время объединяется в общий пул и может быть заимствовано другими группами ресурсов.
CPU_WEIGHT определяет относительную долю времени ЦПУ, которую получает группа при конкуренции за ресурсы. Значение по умолчанию — 100, диапазон — от 1 до 500.
Примечания по использованию:
CPU_MAX_PERCENT=100), первая группа получает 50% общего времени ЦПУ, а остальные — по 25% каждая.Пример конфигурации
| Имя группы | CONCURRENCY | CPU_MAX_PERCENT | CPU_WEIGHT |
|---|---|---|---|
| default_group | 20 | 50 | 10 |
| admin_group | 10 | 70 | 30 |
| system_group | 10 | 30 | 10 |
| test | 10 | 10 | 10 |
CPU_MAX_PERCENT=10, даже при простое системы.MEMORY_QUOTA определяет общий объём памяти (в МБ), резервируемой для группы ресурсов на каждом сегменте. Это суммарный объём памяти, доступный всем активным запросам в группе. Память на запрос рассчитывается как MEMORY_QUOTA / CONCURRENCY.
Чтобы переопределить это поведение, используйте параметр сессии gp_resgroup_memory_query_fixed_mem, чтобы задать фиксированный объём памяти для запроса, который может превышать выделение группы.
Примечания по использованию:
gp_resgroup_memory_query_fixed_mem, он переопределяет настройки памяти группы ресурсов.MEMORY_QUOTA / CONCURRENCY.MEMORY_QUOTA не задан, используется statement_mem как лимит на запрос.gp_workfile_limit_files_per_query, YMatrix выдаёт ошибку нехватки памяти (OOM).Пример сценария
Рассмотрим группу ресурсов adhoc с MEMORY_QUOTA = 1536 МБ и CONCURRENCY = 3. Каждый запрос обычно получает 512 МБ.
ADHOC_1 отправляет Q1 с gp_resgroup_memory_query_fixed_mem = 800 МБ → разрешено.ADHOC_2 отправляет Q2 со значением по умолчанию 512 МБ.Q1 и Q2 пользователь ADHOC_3 отправляет Q3 (512 МБ). Общее потребление = 1312 МБ. Если системная память позволяет, Q3 выполняется.ADHOC_4 отправляет Q4 с gp_resgroup_memory_query_fixed_mem = 700 МБ. Поскольку он обходит ограничения группы, запрос выполняется немедленно.Особые случаи
gp_resource_group_bypass или gp_resource_group_bypass_catalog_query, используют statement_mem как лимит памяти.(MEMORY_QUOTA / CONCURRENCY) < statement_mem, то statement_mem используется как фиксированный лимит памяти на запрос.statement_mem ограничен сверху значением max_statement_mem.MIN_COST используют statement_mem как квоту памяти.IO_LIMIT ограничивает максимальную пропускную способность дискового ввода-вывода и IOPS (операций чтения/записи в секунду) для запросов в группе ресурсов, обеспечивая справедливое распределение пропускной способности и предотвращая насыщение. Этот параметр настраивается отдельно для каждого табличного пространства.
Примечание!
IO_LIMITподдерживается только с cgroup v2.
Ограничения ввода-вывода настраиваются с помощью:
* для всех табличных пространств).rbps / wbps: максимальная пропускная способность чтения/записи в МБ/с. По умолчанию: max (без ограничений).riops / wiops: максимальное количество IOPS чтения/записи. По умолчанию: max (без ограничений).Примечания по конфигурации
Если IO_LIMIT не задан, все параметры ввода-вывода по умолчанию принимают значение max (без ограничений). Если указаны только некоторые значения (например, rbps), остальные (wbps, riops, wiops) по умолчанию принимают значение max.