Поделиться через


Управление рабочей нагрузкой в системе платформы Аналитики

Возможности управления рабочими нагрузками SQL Server PDW позволяют пользователям и администраторам назначать запросы предварительно заданным конфигурациям памяти и параллелизма. Используйте управление рабочими нагрузками для повышения производительности рабочей нагрузки, согласованной или смешанной, позволяя запросам иметь соответствующие ресурсы без нехватки всех запросов навсегда.

Например, с помощью методов управления рабочими нагрузками в SQL Server PDW можно сделать следующее:

  • Выделение большого количества ресурсов для задания загрузки.

  • Укажите дополнительные ресурсы для создания индекса columnstore.

  • Устранение неполадок медленно выполняющегося хэш-соединения, чтобы узнать, требуется ли ему больше памяти, а затем предоставить ей больше памяти.

Основы управления рабочими нагрузками

Ключевые понятия

Управление рабочей нагрузкой
Управление рабочими нагрузками — это возможность понимать и настраивать использование системных ресурсов, чтобы обеспечить оптимальную производительность одновременных запросов.

Класс ресурсов
В SQL Server PDW класс ресурсов — это встроенная роль сервера, которая имеет предопределенные ограничения для памяти и параллелизма. SQL Server PDW выделяет ресурсы для запросов в соответствии с ролью сервера класса ресурсов имени входа, который отправляет запросы.

На вычислительных узлах реализация классов ресурсов использует функцию регулятора ресурсов в SQL Server. Дополнительные сведения о регуляторе ресурсов см. в статье "Регулятор ресурсов" в MSDN.

Общие сведения об использовании текущих ресурсов

Чтобы понять использование системных ресурсов для текущих выполняемых запросов, используйте динамические административные представления SQL Server PDW. Например, можно использовать динамические административные административные представления, чтобы понять, может ли медленно выполняющийся большой хэш-соединения воспользоваться большей памятью.

Настройка выделения ресурсов

Чтобы настроить использование ресурсов, измените членство в классе ресурсов имени входа, отправляющего запрос. Роли сервера класса ресурсов называются mediumrc, largerc и xlargerc. Они представляют средние, крупные и дополнительные выделения ресурсов соответственно.

Например, чтобы выделить большое количество системных ресурсов для запроса, добавьте имя входа, отправляющее запрос на роль сервера largerc . Следующая инструкция ALTER SERVER ROLE добавляет имя входа Анна в роль сервера largerc.

ALTER SERVER ROLE largerc ADD MEMBER Anna;  

Описания классов ресурсов

В следующей таблице описываются классы ресурсов и их распределение системных ресурсов.

Класс ресурсов Важность запроса Максимальное использование памяти* Слоты параллелизма (максимум = 32) Description
default Средняя 400 МБ 1 По умолчанию каждое имя входа допускает небольшое количество памяти и ресурсы параллелизма для запросов.

При добавлении имени входа в класс ресурсов новый класс имеет приоритет. Если имя входа удаляется из всех классов ресурсов, имя входа возвращается к выделению ресурсов по умолчанию.
MediumRC Средняя 1200 МБ 3 Примеры запросов, которые могут потребовать среднего класса ресурсов:

Операции CTAS с большими хэш-соединениями.

Операции SELECT, которым требуется больше памяти, чтобы избежать кэширования на диск.

Загрузка данных в кластеризованные индексы columnstore.

Создание, перестроение и реорганизация кластеризованных индексов columnstore для небольших таблиц с 10-15 столбцами.
Largerc Высокий 2,8 ГБ 7 Примеры запросов, которые могут потребовать большого класса ресурсов:

Очень большие операции CTAS с огромными хэш-соединениями или содержат большие агрегаты, такие как крупные предложения ORDER BY или GROUP BY.

Операции SELECT, требующие очень большого объема памяти для таких операций, как хэш-соединения, или агрегаты, такие как предложения ORDER BY или GROUP BY

Загрузка данных в кластеризованные индексы columnstore.

Создание, перестроение и реорганизация кластеризованных индексов columnstore для небольших таблиц с 10-15 столбцами.
xlargerc Высокий 8,4 ГБ 22 Класс дополнительных ресурсов предназначен для запросов, которые могут требовать дополнительного потребления ресурсов во время выполнения.

*Максимальное использование памяти — это приблизительное значение.

Важность запроса

Важность запроса сопоставляется с объемом времени ЦП, которое SQL Server, запущенный на вычислительных узлах, будет предоставлять запросы. Запросы с более высоким приоритетом получают больше времени ЦП.

Максимальное использование памяти

Максимальное использование памяти — это максимальный объем доступной памяти, которую может использовать запрос в каждом пространстве обработки. Например, запрос mediumrc может использовать до 1200 МБ для обработки в каждом дистрибутиве. По-прежнему важно убедиться, что данные не скошены, чтобы избежать нескольких дистрибутивов, выполняющих большую часть работы.

Слоты параллелизма

Цель выделения слотов параллелизма 1, 3, 7 и 22 заключается в том, чтобы разрешить одновременно выполнять как крупные, так и небольшие процессы, не блокируя небольшой процесс при выполнении большого процесса. Например, SQL Server PDW может выделить не более 32 слотов параллелизма для выполнения 1 дополнительных больших запросов (22 слота), 1 большой запрос (7 слотов) и 1 средний запрос (3 слота) одновременно.

Примеры выделения до 32 слотов параллелизма одновременных запросов:

  • 28 слотов = 4 больших

  • 30 слотов = 10 средних

  • 32 слота = 32 по умолчанию

  • 32 слота = 1 экстра большой + 1 большой + 1 средний

  • 32 слота = 2 больших + 4 средних + 6 по умолчанию

Предположим, что 6 больших запросов отправляются в SQL Server PDW, а затем отправляются 10 запросов по умолчанию. SQL Server PDW обрабатывает запросы в порядке приоритета следующим образом:

  • Выделите 28 слотов параллелизма, чтобы начать обработку 4 больших запросов по мере того, как память становится доступной, и сохранить 2 больших запроса в очереди.

  • Выделите 4 слота параллелизма, чтобы начать обработку 4 запросов по умолчанию и сохранить 6 запросов по умолчанию в очереди ожидания.

По мере того как запросы завершают и становятся доступными слоты параллелизма, SQL Server PDW выделяет оставшиеся запросы в соответствии с доступными ресурсами и приоритетом. Например, если открыто 7 слотов параллелизма, ожидание больших запросов будет иметь более высокий приоритет для 7 слотов, чем ожидание средних запросов. Если открыты 6 слотов, ТО SQL Server PDW выделяет 6 запросов по умолчанию. Однако все слоты памяти и параллелизма должны быть доступны, прежде чем SQL Server PDW разрешает выполнение запроса.

В каждом классе ресурсов запросы выполняются в первом порядке (FIFO).

Общие замечания

Если имя входа является членом нескольких классов ресурсов, класс с большинством ресурсов имеет приоритет.

При добавлении или удалении имени входа из класса ресурсов изменение вступает в силу немедленно для всех будущих запросов; текущие запросы, выполняемые или ожидающие, не затрагиваются. Для изменения имени входа не требуется отключить и повторно подключиться.

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

Перед запуском инструкции SQL Server PDW пытается получить слоты параллелизма, необходимые для запроса. Если он не может получить достаточно слотов параллелизма, SQL Server PDW перемещает запрос в состояние ожидания выполнения. Все системы ресурсов, которые уже были выделены запросу, возвращаются в систему.

Большинство инструкций SQL всегда нуждаются в выделении ресурсов по умолчанию и поэтому не контролируются классами ресурсов. Например, CREATE LOGIN требует только небольшого количества ресурсов и выделяет ресурсы по умолчанию, даже если имя входа, вызывающее CREATE LOGIN, является членом класса ресурсов. Например, если Анна является членом класса ресурсов largerc и отправляет инструкцию CREATE LOGIN, инструкция CREATE LOGIN будет выполняться с количеством ресурсов по умолчанию.

Инструкции и операции SQL, управляемые классами ресурсов:

  • ALTER INDEX REBUILD

  • ALTER INDEX REORGANIZE

  • ALTER TABLE REBUILD

  • СОЗДАНИЕ КЛАСТЕРИЗОВАННОГО ИНДЕКСА

  • СОЗДАНИЕ КЛАСТЕРИЗОВАННОГО ИНДЕКСА COLUMNSTORE

  • CREATE TABLE AS SELECT

  • CREATE REMOTE TABLE AS SELECT

  • Загрузка данных с помощью dwloader.

  • INSERT SELECT

  • ОБНОВИТЬ

  • DELETE

  • RESTORE DATABASE при восстановлении на устройстве с большим числом вычислительных узлов.

  • SELECT, исключая запросы, доступные только для dmV

Ограничения

Классы ресурсов управляют выделением памяти и параллелизма. Они не управляют операциями ввода и вывода.

Метаданные

Динамические административные представления, содержащие сведения о классах ресурсов и членах класса ресурсов.

Динамические административные представления, содержащие сведения о состоянии запросов и необходимых ресурсов:

Связанные системные представления, предоставляемые из динамических административных представлений SQL Server на вычислительных узлах. Ссылки на эти динамические динамические административные представления SQL Server см. на сайте MSDN.

  • sys.dm_pdw_nodes_resource_governor_resource_pools

  • sys.dm_pdw_nodes_resource_governor_workload_groups

  • sys.dm_pdw_nodes_resource_governor_resource_pools

  • sys.dm_pdw_nodws_resource_governor_workload_groups

  • sys.dm_pdw_nodes_exec_sessions

  • sys.dm_pdw_nodes_exec_requests

  • sys.dm_pdw_nodes_exec_query_memory_grants

  • sys.dm_pdw_nodes_exec_query_resource_semaphores

  • sys.dm_pdw_nodes_os_memory_brokers

  • sys.dm_pdw_nodes_os_memory_cache_entries

  • sys.dm_pdw_nodes_exec_cached_plans

Связанные задачи

Задачи управления рабочими нагрузками