Freigeben über


Azure Synapse Analytics-Isolierung von Workload-Gruppen

In diesem Artikel wird erläutert, wie Workloadgruppen verwendet werden können, um die Workloadisolation zu konfigurieren, Ressourcen zu enthalten und Laufzeitregeln für die Abfrageausführung anzuwenden.

Arbeitslastgruppen

Arbeitsauslastungsgruppen sind Container für eine Reihe von Anforderungen und bilden die Grundlage für die Konfiguration der Workloadverwaltung, einschließlich der Workloadisolation, auf einem System. Workloadgruppen werden mithilfe der Syntax CREATE WORKLOAD GROUP erstellt. Bei einer einfachen Konfiguration der Workloadverwaltung können Datenladevorgänge und Benutzerabfragen verwaltet werden. Eine Workloadgruppe mit dem Namen wgDataLoads definiert beispielsweise Arbeitsauslastungsaspekte für Daten, die in das System geladen werden. Außerdem definiert eine Workloadgruppe namens wgUserQueries Workload-Aspekte für Benutzer, die Abfragen ausführen, um Daten aus dem System zu lesen.

In den folgenden Abschnitten wird hervorgehoben, wie Workloadgruppen die Möglichkeit bieten, Isolation, Eindämmung, Anforderungsressourcendefinition und Einhaltung von Ausführungsregeln zu definieren.

Ressourcenverwaltung

Workloadgruppen steuern Arbeitsspeicher und CPU-Ressourcen. Datenträger- und Netzwerkein-/ausgabe sowie tempdb werden nicht geregelt. Die Ressourcengovernance für Arbeitsspeicher und CPU lautet wie folgt:

Der Speicher wird auf Anforderungsebene gesteuert und während der gesamten Dauer der Anforderung gehalten. Weitere Informationen zum Konfigurieren der Arbeitsspeichermenge pro Anforderung finden Sie unter "Ressourcen pro Anforderung ". Der parameter MIN_PERCENTAGE_RESOURCE für die Workloadgruppe widmet dieser Workloadgruppe ausschließlich Arbeitsspeicher. Der CAP_PERCENTAGE_RESOURCE-Parameter für die Workloadgruppe ist ein hartes Limit für den Arbeitsspeicher, den eine Workloadgruppe nutzen kann.

CPU-Ressourcen werden auf Workloadgruppenebene gesteuert und von allen Anforderungen innerhalb einer Workloadgruppe gemeinsam genutzt. CPU-Ressourcen sind flüssig im Vergleich zum Arbeitsspeicher, der einer Anforderung für die Dauer der Ausführung zugeordnet ist. Da es sich bei der CPU um eine flüssige Ressource handelt, können nicht verwendete CPU-Ressourcen von allen Workloadgruppen genutzt werden. Dies bedeutet, dass die CPU-Auslastung den CAP_PERCENTAGE_RESOURCE Parameter für die Workloadgruppe überschreiten kann. Dies bedeutet auch, dass der Parameter MIN_PERCENTAGE_RESOURCE für die Workload-Gruppe keine feste Reservierung wie der Arbeitsspeicher ist. Wenn CPU-Ressourcen in Konflikt stehen, wird die Verwendung an der Definition CAP_PERCENTAGE_RESOURCE für Arbeitsauslastungsgruppen ausgerichtet.

Workloadisolation

Workloadisolation bedeutet, dass Ressourcen ausschließlich für eine Arbeitsauslastungsgruppe reserviert sind. Die Workloadisolation wird erreicht, indem der Parameter MIN_PERCENTAGE_RESOURCE in der Syntax CREATE WORKLOAD GROUP auf einen Wert größer als null festgelegt wird. Für fortlaufende Ausführungsworkloads, die enge SLAs einhalten müssen, stellt die Isolation sicher, dass Ressourcen für die Workloadgruppe immer verfügbar sind.

Durch die implizite Konfiguration der Workloadisolation wird eine garantierte Parallelitätsstufe definiert. Wenn zum Beispiel für eine Arbeitsauslastungsgruppe ein MIN_PERCENTAGE_RESOURCE auf 30 % und REQUEST_MIN_RESOURCE_GRANT_PERCENT auf 2 % festgelegt wird, ist für die Arbeitsauslastungsgruppe ein Grad an Parallelität von 15 garantiert. Die Stufe der Gleichzeitigkeit wird gewährleistet, da 15 bis 2% der Ressourcenslots jederzeit innerhalb der Workload-Gruppe reserviert sind (unabhängig davon, wie REQUEST_MAX_RESOURCE_GRANT_PERCENT konfiguriert ist). Wenn REQUEST_MAX_RESOURCE_GRANT_PERCENT größer als REQUEST_MIN_RESOURCE_GRANT_PERCENT ist und CAP_PERCENTAGE_RESOURCE größer als MIN_PERCENTAGE_RESOURCE ist, können zusätzliche Ressourcen pro Anforderung hinzugefügt werden (basierend auf der Ressourcenverfügbarkeit). Wenn REQUEST_MAX_RESOURCE_GRANT_PERCENT und REQUEST_MIN_RESOURCE_GRANT_PERCENT gleich sind und CAP_PERCENTAGE_RESOURCE größer als MIN_PERCENTAGE_RESOURCE ist, ist zusätzliche Parallelität möglich. Sehen Sie sich die folgende Methode zur Bestimmung der garantierten Parallelität an:

[Garantierte Parallelität] = [MIN_PERCENTAGE_RESOURCE]/[REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Hinweis

Für min_percentage_resource gibt es spezifische Mindestwerte auf Serviceebene. Weitere Informationen finden Sie unter Effective Values.

Wenn keine Workloadisolation vorhanden ist, werden Anforderungen im freigegebenen Ressourcenpool ausgeführt. Der Zugriff auf Ressourcen im freigegebenen Pool ist nicht garantiert und wird auf Basis der Wichtigkeit zugewiesen.

Die Konfiguration der Workloadisolation sollte mit Vorsicht erfolgen, da die Ressourcen der Workloadgruppe zugeordnet werden, auch wenn keine aktiven Anforderungen in der Workloadgruppe vorhanden sind. Das Überkonfigurieren der Isolation kann zu einer verringerten Gesamtsystemauslastung führen.

Benutzer sollten eine Workload-Verwaltungslösung vermeiden, die 100% Workload-Isolation konfiguriert: 100% Isolation wird erreicht, wenn die Summe der in allen Workload-Gruppen konfigurierten min_percentage_resource 100% ergibt. Diese Art von Konfiguration ist übermäßig restriktiv und starr, sodass wenig Platz für Ressourcenanforderungen bleibt, die versehentlich falsch klassifiziert werden. Es gibt eine Bereitstellung, mit der eine Anforderung aus Workloadgruppen ausgeführt werden kann, die nicht für die Isolation konfiguriert sind. Die Ressourcen, die dieser Anforderung zugeordnet sind, werden in den DMVs des Systems als 0 (null) angezeigt und nehmen eine „smallrc“-Ebene der Ressourcenzuweisung von reservierten Ressourcen des Systems an.

Hinweis

Um eine optimale Ressourcenauslastung sicherzustellen, sollten Sie eine Workload-Verwaltungslösung in Betracht ziehen, die eine gewisse Isolation nutzt, um sicherzustellen, dass SLAs erfüllt und mit gemeinsam genutzten Ressourcen gemischt werden, die basierend auf der Workload-Wichtigkeit zugegriffen werden.

Arbeitsauslastungseindämmung

Die Workloadeinschränkung bezieht sich auf die Begrenzung der Ressourcen, die eine Workloadgruppe verbrauchen kann. Die Workloadeindämmung wird erreicht, indem der Parameter CAP_PERCENTAGE_RESOURCE in der CREATE WORKLOAD GROUP-Syntax auf weniger als 100 festgelegt wird. Berücksichtigen Sie das Szenario, in dem Benutzer Lesezugriff auf das System haben müssen, damit sie eine Was-wäre-wenn-Analyse mit Ad-hoc-Abfragen durchführen können. Diese Arten von Anforderungen können sich negativ auf andere Workloads auswirken, die auf dem System ausgeführt werden. Durch die Konfiguration der Eindämmung wird sichergestellt, dass die Menge der Ressourcen begrenzt ist.

Durch Konfigurieren der Workloadeigenständigkeit wird implizit ein maximaler Grad an Parallelität definiert. Wenn CAP_PERCENTAGE_RESOURCE auf 60 % und REQUEST_MIN_RESOURCE_GRANT_PERCENT auf 1 % festgelegt wird, ist für die Arbeitsauslastungsgruppe ein Grad an Parallelität von 60 zulässig. Ziehen Sie die unten aufgeführte Methode zum Bestimmen der maximalen Gleichzeitigkeit in Betracht.

[Maximal Gleichzeitigkeit] = [CAP_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Hinweis

Der gültige Wert für CAP_PERCENTAGE_RESOURCE einer Arbeitsauslastungsgruppe erreicht keine 100 %, wenn Arbeitsauslastungsgruppen mit einem Wert für MIN_PERCENTAGE_RESOURCE höher als 0 (null) erstellt werden. Weitere Informationen zu effektiven Laufzeitwerten finden Sie unter sys.dm_workload_management_workload_groups_stats.

Ressourcen pro Anforderungsdefinition

Workloadgruppen bieten einen Mechanismus zum Definieren der Min- und Max.-Menge von Ressourcen, die pro Anforderung zugeordnet sind, mit den Parametern REQUEST_MIN_RESOURCE_GRANT_PERCENT und REQUEST_MAX_RESOURCE_GRANT_PERCENT in der Syntax CREATE WORKLOAD GROUP. Ressource in diesem Fall ist Arbeitsspeicher. Die CPU-Ressourcengovernance wird im Abschnitt "Ressourcengovernance " behandelt.

Hinweis

REQUEST_MAX_RESOURCE_GRANT_PERCENT ist ein optionaler Parameter, der standardmäßig denselben Wert aufweist, der für REQUEST_MIN_RESOURCE_GRANT_PERCENT angegeben ist.

Wie beim Auswählen einer Ressourcenklasse legt das Konfigurieren REQUEST_MIN_RESOURCE_GRANT_PERCENT den Wert für die ressourcen fest, die von einer Anforderung verwendet werden. Die Menge der Ressourcen, die durch den festgelegten Wert angezeigt wird, ist für die Zuweisung an die Anforderung garantiert, bevor sie mit der Ausführung beginnt. Kunden, die von Ressourcenklassen zu Arbeitsauslastungsgruppen migrieren, sollten als Ausgangspunkt dem Artikel zur Vorgehensweise für die Zuordnung von Ressourcenklassen zu Arbeitsauslastungsgruppen folgen.

Durch das Konfigurieren von REQUEST_MAX_RESOURCE_GRANT_PERCENT auf einen Wert größer als REQUEST_MIN_RESOURCE_GRANT_PERCENT kann das System mehr Ressourcen pro Anforderung zuordnen. Während der Planung einer Anforderung bestimmt das System die tatsächliche Ressourcenzuordnung für die Anforderung, die zwischen REQUEST_MIN_RESOURCE_GRANT_PERCENT und REQUEST_MAX_RESOURCE_GRANT_PERCENT liegt, basierend auf der Ressourcenverfügbarkeit im freigegebenen Pool und der aktuellen Last auf dem System. Die Ressourcen müssen im freigegebenen Ressourcenpool vorhanden sein, wenn die Abfrage geplant ist.

Hinweis

REQUEST_MIN_RESOURCE_GRANT_PERCENT und REQUEST_MAX_RESOURCE_GRANT_PERCENT weisen gültige Werte auf, die von den gültigen Werten für MIN_PERCENTAGE_RESOURCE und CAP_PERCENTAGE_RESOURCE abhängig sind. Weitere Informationen zu effektiven Laufzeitwerten finden Sie unter sys.dm_workload_management_workload_groups_stats.

Ausführungsregeln

Bei Ad-hoc-Berichterstellungssystemen können Kunden unbeabsichtigt unkontrollierte Abfragen starten, die sich stark auf die Produktivität anderer auswirken. Systemadministratoren sind gezwungen, ausufernde Abfragen zu beenden, um Systemressourcen freizugeben. Workloadgruppen bieten die Möglichkeit, eine Timeoutregel für die Abfrageausführung so zu konfigurieren, dass Abfragen abgebrochen werden, die den angegebenen Wert überschritten haben. Die Regel wird konfiguriert, indem sie den parameter QUERY_EXECUTION_TIMEOUT_SEC in der Syntax CREATE WORKLOAD GROUP festlegen.

Geteilte Poolressourcen

Geteilte Poolressourcen sind die Ressourcen, die nicht für die Isolation konfiguriert sind. Workloadgruppen, bei denen MIN_PERCENTAGE_RESOURCE auf den Wert Null gesetzt ist, greifen auf Ressourcen im freigegebenen Pool zu, um Abfragen auszuführen. Arbeitsauslastungsgruppen mit einem höheren Wert für CAP_PERCENTAGE_RESOURCE als MIN_PERCENTAGE_RESOURCE verwenden ebenfalls freigegebene Ressourcen. Die im freigegebenen Pool verfügbare Menge an Ressourcen wird wie folgt berechnet.

[Freigegebener Pool] = 100 - [Summe von MIN_PERCENTAGE_RESOURCE für alle Arbeitsauslastungsgruppen]

Der Zugang zu Ressourcen im freigegebenen Pool wird auf Basis der Wichtigkeit zugewiesen. Anforderungen mit der gleichen Wichtigkeitsstufe greifen auf gemeinsam genutzte Poolressourcen auf der Basis von 'First In, First Out' zu.

Nächste Schritte