isolatie van Azure Synapse Analytics-workloadgroepen

In dit artikel wordt uitgelegd hoe workloadgroepen kunnen worden gebruikt voor het configureren van workloadisolatie, het bevatten van resources en het toepassen van runtimeregels voor het uitvoeren van query's.

Werkbelastinggroepen

Workloadgroepen zijn containers voor een set aanvragen en vormen de basis voor hoe workloadbeheer, inclusief isolatie van werkbelastingen, op een systeem wordt geconfigureerd. Workloadgroepen worden gemaakt met behulp van de syntaxis CREATE WORKLOAD GROUP . Een eenvoudige configuratie voor workloadbeheer kan het laden van gegevens en gebruikersquery's beheren. Een workloadgroep met de naam wgDataLoads definieert bijvoorbeeld workloadaspecten voor gegevens die in het systeem worden geladen. Een workloadgroep met de naam wgUserQueries definieert ook workloadaspecten voor gebruikers die query's uitvoeren om gegevens uit het systeem te lezen.

In de volgende secties wordt uitgelegd hoe workloadgroepen de mogelijkheid bieden om isolatie en insluiting te definiëren, resourcedefinities aan te vragen en te voldoen aan de uitvoeringsregels.

Resourcebeheer

Workloadgroepen beheren geheugen- en CPU-resources. Schijf- en netwerk-IO en tempdb worden niet beheerd. Resourcebeheer voor geheugen en CPU is als volgt:

Het geheugen wordt beheerd op aanvraagniveau en wordt gedurende de hele duur van de aanvraag bewaard. Zie De definitie van resources per aanvraag voor meer informatie over het configureren van de hoeveelheid geheugen per aanvraag. De parameter MIN_PERCENTAGE_RESOURCE voor de workloadgroep wijdt uitsluitend geheugen toe aan die workloadgroep. De parameter CAP_PERCENTAGE_RESOURCE voor de workloadgroep is een vaste limiet voor het geheugen dat een workloadgroep kan gebruiken.

CPU-resources worden beheerd op het niveau van de workloadgroep en gedeeld door alle aanvragen binnen een workloadgroep. CPU-resources zijn vloeiend vergeleken met het geheugen dat is toegewezen aan een aanvraag voor de duur van de uitvoering. Aangezien CPU een vloeiende resource is, kunnen ongebruikte CPU-resources worden gebruikt door alle workloadgroepen. Dit betekent dat het CPU-gebruik de parameter CAP_PERCENTAGE_RESOURCE voor de workloadgroep kan overschrijden. Dit betekent ook dat de parameter MIN_PERCENTAGE_RESOURCE voor de workloadgroep geen harde reservering is, zoals geheugen. Wanneer CPU-resources een conflict hebben, wordt het gebruik afgestemd op de definitie van de CAP_PERCENTAGE_RESOURCE voor workloadgroepen.

Isolatie van workloads

Isolatie van workloads betekent dat resources exclusief worden gereserveerd voor een workloadgroep. Isolatie van werkbelastingen wordt bereikt door de parameter MIN_PERCENTAGE_RESOURCE in de syntaxis VAN DE WERKBELASTINGGROEP MAKEN te configureren tot groter dan nul. Voor workloads voor continue uitvoering die moeten voldoen aan strikte SLA's, zorgt isolatie ervoor dat resources altijd beschikbaar zijn voor de workloadgroep.

Als u workloadisolatie configureert, wordt impliciet een gegarandeerd niveau van gelijktijdigheid gedefinieerd. Een workloadgroep met een MIN_PERCENTAGE_RESOURCE bijvoorbeeld ingesteld op 30% en REQUEST_MIN_RESOURCE_GRANT_PERCENT ingesteld op 2% is gegarandeerd 15 gelijktijdigheid. Het gelijktijdigheidsniveau wordt gegarandeerd omdat 15-2% van de resources te allen tijde binnen de workloadgroep is gereserveerd (ongeacht hoe REQUEST_MAX_RESOURCE_GRANT_PERCENT is geconfigureerd). Als REQUEST_MAX_RESOURCE_GRANT_PERCENT groter is dan REQUEST_MIN_RESOURCE_GRANT_PERCENT en CAP_PERCENTAGE_RESOURCE groter is dan MIN_PERCENTAGE_RESOURCE kunnen extra resources per aanvraag worden toegevoegd (op basis van de beschikbaarheid van resources). Als REQUEST_MAX_RESOURCE_GRANT_PERCENT en REQUEST_MIN_RESOURCE_GRANT_PERCENT gelijk zijn en CAP_PERCENTAGE_RESOURCE groter is dan MIN_PERCENTAGE_RESOURCE, is extra gelijktijdigheid mogelijk. Overweeg de onderstaande methode om de gegarandeerde gelijktijdigheid te bepalen:

[Gegarandeerde gelijktijdigheid] = [MIN_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Notitie

Er zijn specifieke minimumwaarden voor serviceniveaus voor min_percentage_resource. Zie Effectieve waarden voor meer informatie.

Als er geen isolatie van werkbelastingen is, worden aanvragen uitgevoerd in de gedeelde pool van resources. Toegang tot resources in de gedeelde pool wordt niet gegarandeerd en wordt toegewezen op basis van urgentie .

Het configureren van workloadisolatie moet voorzichtig zijn, omdat de resources worden toegewezen aan de workloadgroep, zelfs als er geen actieve aanvragen in de workloadgroep zijn. Over-configuratie van isolatie kan leiden tot een verminderd algemeen systeemgebruik.

Gebruikers moeten een oplossing voor workloadbeheer vermijden die 100% isolatie van workloads configureert: 100% isolatie wordt bereikt wanneer de som van min_percentage_resource geconfigureerd voor alle workloadgroepen gelijk is aan 100%. Dit type configuratie is te beperkend en star, waardoor er weinig ruimte overblijft voor resourceaanvragen die per ongeluk verkeerd zijn geclassificeerd. Er is een inrichting waarmee één aanvraag kan worden uitgevoerd vanuit workloadgroepen die niet zijn geconfigureerd voor isolatie. De resources die aan deze aanvraag zijn toegewezen, worden weergegeven als een nul in de DMV's van het systeem en lenen een klein niveau van resourcetoestemming van door het systeem gereserveerde resources.

Notitie

Om optimaal resourcegebruik te garanderen, kunt u een oplossing voor workloadbeheer overwegen die gebruikmaakt van enige isolatie om ervoor te zorgen dat aan SLA's wordt voldaan en wordt gemengd met gedeelde resources die worden geopend op basis van het belang van de workload.

Insluiting van werkbelasting

Insluiting van workloads verwijst naar het beperken van de hoeveelheid resources die een workloadgroep kan gebruiken. Workloadinsluiting wordt bereikt door de parameter CAP_PERCENTAGE_RESOURCE te configureren op minder dan 100 in de syntaxis VAN DE WERKBELASTINGGROEP MAKEN . Denk aan het scenario waarbij gebruikers leestoegang tot het systeem nodig hebben, zodat ze een wat-als-analyse kunnen uitvoeren via ad-hocquery's. Dit soort aanvragen kan een negatieve invloed hebben op andere werkbelastingen die op het systeem worden uitgevoerd. Het configureren van insluiting zorgt ervoor dat de hoeveelheid resources beperkt is.

Als u workloadinsluiting configureert, wordt impliciet een maximumniveau van gelijktijdigheid gedefinieerd. Met een CAP_PERCENTAGE_RESOURCE ingesteld op 60% en een REQUEST_MIN_RESOURCE_GRANT_PERCENT ingesteld op 1%, is een gelijktijdigheidsniveau van maximaal 60 toegestaan voor de workloadgroep. Bekijk de onderstaande methode om de maximale gelijktijdigheid te bepalen:

[Max. gelijktijdigheid] = [CAP_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Notitie

De effectieve CAP_PERCENTAGE_RESOURCE van een workloadgroep bereikt niet 100% wanneer werkbelastinggroepen met MIN_PERCENTAGE_RESOURCE op een niveau groter dan nul worden gemaakt. Zie sys.dm_workload_management_workload_groups_stats voor effectieve runtimewaarden.

Resources per aanvraagdefinitie

Workloadgroepen bieden een mechanisme voor het definiëren van de minimale en maximale hoeveelheid resources die per aanvraag worden toegewezen met de parameters REQUEST_MIN_RESOURCE_GRANT_PERCENT en REQUEST_MAX_RESOURCE_GRANT_PERCENT in de syntaxis CREATE WORKLOAD GROUP . Resource in dit geval is geheugen. CPU-resourcebeheer wordt behandeld in de sectie Resourcebeheer .

Notitie

REQUEST_MAX_RESOURCE_GRANT_PERCENT is een optionele parameter die standaard dezelfde waarde heeft die is opgegeven voor REQUEST_MIN_RESOURCE_GRANT_PERCENT.

Net als bij het kiezen van een resourceklasse stelt het configureren van REQUEST_MIN_RESOURCE_GRANT_PERCENT de waarde in voor de resources die door een aanvraag worden gebruikt. De hoeveelheid resources die door de ingestelde waarde wordt aangegeven, wordt gegarandeerd voor toewijzing aan de aanvraag voordat de uitvoering wordt gestart. Voor klanten die migreren van resourceklassen naar werkbelastinggroepen, kunt u het artikel Procedure volgen om resourcesklassen toe te wijzen aan werkbelastinggroepen als uitgangspunt.

Door REQUEST_MAX_RESOURCE_GRANT_PERCENT te configureren naar een waarde die groter is dan REQUEST_MIN_RESOURCE_GRANT_PERCENT, kan het systeem meer resources per aanvraag toewijzen. Tijdens het plannen van een aanvraag bepaalt het systeem de werkelijke resourcetoewijzing aan de aanvraag, die zich tussen REQUEST_MIN_RESOURCE_GRANT_PERCENT en REQUEST_MAX_RESOURCE_GRANT_PERCENT bevindt, op basis van de beschikbaarheid van resources in de gedeelde pool en de huidige belasting van het systeem. De resources moeten aanwezig zijn in de gedeelde groep resources wanneer de query wordt gepland.

Notitie

REQUEST_MIN_RESOURCE_GRANT_PERCENT en REQUEST_MAX_RESOURCE_GRANT_PERCENT effectieve waarden hebben die afhankelijk zijn van de effectieve MIN_PERCENTAGE_RESOURCE en CAP_PERCENTAGE_RESOURCE waarden. Zie sys.dm_workload_management_workload_groups_stats voor effectieve runtimewaarden.

Uitvoeringsregels

Op ad-hocrapportagesystemen kunnen klanten per ongeluk runaway-query's uitvoeren die de productiviteit van anderen ernstig beïnvloeden. Systeembeheerders worden gedwongen tijd te besteden aan het uitvoeren van runaway-query's om systeembronnen vrij te maken. Workloadgroepen bieden de mogelijkheid om een time-outregel voor het uitvoeren van query's te configureren om query's te annuleren die de opgegeven waarde hebben overschreden. De regel wordt geconfigureerd door de parameter QUERY_EXECUTION_TIMEOUT_SEC in de syntaxis WORKLOADGROEP MAKEN in te stellen.

Gedeelde poolresources

Gedeelde poolresources zijn de resources die niet zijn geconfigureerd voor isolatie. Workloadgroepen met een MIN_PERCENTAGE_RESOURCE ingesteld op nul maken gebruik van resources in de gedeelde pool om aanvragen uit te voeren. Workloadgroepen met een CAP_PERCENTAGE_RESOURCE groter dan MIN_PERCENTAGE_RESOURCE gebruikten ook gedeelde resources. De hoeveelheid beschikbare resources in de gedeelde pool wordt als volgt berekend.

[Gedeelde pool] = 100 - [som van MIN_PERCENTAGE_RESOURCE alle workloadgroepen]

Toegang tot resources in de gedeelde pool wordt toegewezen op basis van urgentie . Aanvragen met hetzelfde urgentieniveau hebben toegang tot gedeelde poolresources op basis van first in/first out.

Volgende stappen