Isolatie van Azure Synapse Analytics-werklastgroepen
In dit artikel wordt uitgelegd hoe werkbelastinggroepen kunnen worden gebruikt om isolatie van werkbelastingen te configureren, resources te bevatten en runtimeregels toe te passen voor het uitvoeren van query's.
Werkbelastinggroepen
Workloadgroepen zijn containers voor een set aanvragen en vormen de basis voor het beheren van werkbelastingen, inclusief isolatie van werkbelastingen, op een systeem. Workloadgroepen worden gemaakt met behulp van de syntaxis CREATE WORKLOAD GROUP . Een eenvoudige configuratie voor workloadbeheer kan gegevensbelastingen en gebruikersquery's beheren. Een benoemde workloadgroep wgDataLoads
definieert bijvoorbeeld workloadaspecten voor gegevens die in het systeem worden geladen. Daarnaast zal een workloadgroep genaamd wgUserQueries
aspecten van de workload definiëren voor gebruikers die query's uitvoeren om gegevens uit het systeem te lezen.
In de volgende secties wordt uitgelegd hoe werkbelastinggroepen de mogelijkheid bieden om isolatie, insluiting, aanvraagresourcedefinitie te definiëren en te voldoen aan 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 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 MIN_PERCENTAGE_RESOURCE parameter wijst exclusief geheugen toe aan de betreffende workloadgroep. De CAP_PERCENTAGE_RESOURCE parameter 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 worden gedeeld door alle aanvragen binnen een workloadgroep. CPU-bronnen zijn flexibel vergeleken met geheugen dat aan een verzoek is toegewezen gedurende de uitvoering. De opgegeven CPU is een flexibele hulpbron, ongebruikte CPU-bronnen kunnen door alle werklastgroepen worden benut. Dit betekent dat het CPU-gebruik de CAP_PERCENTAGE_RESOURCE parameter voor de workloadgroep kan overschrijden. Dit betekent ook dat de MIN_PERCENTAGE_RESOURCE parameter voor de workloadgroep geen vaste reservering is, zoals geheugen. Wanneer CPU-resources conflicteren, wordt het gebruik afgestemd op de CAP_PERCENTAGE_RESOURCE definitie voor workloadgroepen.
Isolatie van workloads
Isolatie van workloads betekent dat resources uitsluitend voor een workloadgroep worden gereserveerd. Werkbelastingisolatie wordt bereikt door de parameter MIN_PERCENTAGE_RESOURCE te configureren op meer dan nul in de syntaxis CREATE WORKLOAD GROUP. Voor continu draaiende workloads die aan strikte SLA's moeten voldoen, zorgt isolatie ervoor dat er altijd resources beschikbaar zijn voor de workloadgroep.
Door workloadisolatie impliciet te configureren, wordt een gegarandeerd gelijktijdigheidsniveau 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 er altijd 15-2% slots van middelen zijn gereserveerd binnen de werkgroep (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 extra resources per aanvraag kunnen 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. Bekijk de onderstaande methode voor het bepalen van gegarandeerde concurrentie:
[Gegarandeerde gelijktijdigheid] = [MIN_PERCENTAGE_RESOURCE
] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT
]
Notitie
Er zijn specifieke minimumwaarden voor serviceniveau voor min_percentage_resource. Zie Effectieve waarden voor meer informatie.
Als er geen isolatie van workloads is, worden aanvragen verwerkt in de gedeelde pool van resources. Toegang tot middelen in de gedeelde pool wordt niet gegarandeerd en wordt op een belangrijkheidsbasis toegewezen.
Het configureren van workloadisolatie moet met voorzichtigheid worden gedaan, omdat de resources aan de workloadgroep worden toegewezen, zelfs als er geen actieve aanvragen in de workloadgroep zijn. Het over-configureren van isolatie kan leiden tot een verminderd algemeen systeemgebruik.
Gebruikers moeten een oplossing voor workloadbeheer vermijden die 100% isolatie van werkbelastingen 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 is voor resourceaanvragen die per ongeluk onjuist zijn geclassificeerd. Er is een inrichting waarmee één aanvraag kan worden uitgevoerd vanuit workloadgroepen die niet zijn geconfigureerd voor isolatie. De resources die aan dit verzoek zijn toegewezen, worden weergegeven als nul in de systeem-DMVs en lenen een klein niveau van resource-toewijzing 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 gecombineerd met gedeelde resources die worden geopend op basis van het belang van de werkbelasting.
Beheersing van werkbelasting
Beperking van werkbelasting verwijst naar het beperken van de hoeveelheid middelen die een werkbelastinggroep kan verbruiken. De insluiting van de werkbelasting wordt bereikt door de parameter CAP_PERCENTAGE_RESOURCE in te stellen op minder dan 100 in de CREATE WORKLOAD GROUP syntaxis. Overweeg een situatie waarin gebruikers lees-toegang tot het systeem nodig hebben, zodat ze een what-if-analyse kunnen uitvoeren via ad-hoc query's. Deze typen aanvragen kunnen 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.
Het configureren van beheersing van werkbelastingen definieert impliciet een maximaal niveau van gelijktijdigheid. Met CAP_PERCENTAGE_RESOURCE ingesteld op 60% en REQUEST_MIN_RESOURCE_GRANT_PERCENT ingesteld op 1% is een gelijktijdigheidsniveau tot 60 toegestaan voor de workloadgroep. Bekijk de onderstaande methode voor het bepalen van de maximale gelijktijdigheid:
[Maximale 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 runtime-waarden.
Resources per definitie van aanvraag
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 . De hulpbron 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 worden aangegeven, is gegarandeerd voor toewijzing aan de aanvraag voordat de uitvoering wordt gestart. Overweeg het artikel Instructies te volgen om resourceklassen in kaart te brengen naar workloadgroepen als uitgangspunt voor klanten die migreren van resourceklassen naar workloadgroepen.
Als u REQUEST_MAX_RESOURCE_GRANT_PERCENT configureert op 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. Dit is tussen REQUEST_MIN_RESOURCE_GRANT_PERCENT en REQUEST_MAX_RESOURCE_GRANT_PERCENT, op basis van de beschikbaarheid van resources in een gedeelde pool en de huidige belasting van het systeem. De resources moeten aanwezig zijn in de gedeelde pool met resources wanneer de query is 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 runtime-waarden.
Uitvoeringsregels
In ad-hoc rapportagesystemen kunnen klanten per ongeluk runaway-query's uitvoeren die de productiviteit van anderen ernstig beïnvloeden. Systeembeheerders moeten tijd besteden aan het doden 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 CREATE WORKLOAD GROUP in te stellen.
Resources voor gedeelde pools
Gedeelde poolbronnen zijn de resources die niet zijn geconfigureerd voor isolatie. Werkbelastinggroepen met een MIN_PERCENTAGE_RESOURCE ingesteld op nul maken gebruik van middelen 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 resources die beschikbaar zijn in de gedeelde pool, wordt als volgt berekend.
[Gedeelde pool] = 100 - [som van MIN_PERCENTAGE_RESOURCE
van alle werkbelastinggroepen]
Toegang tot middelen in de gedeelde pool wordt op basis van belang toegewezen. Aanvragen met hetzelfde belangrijkheidsniveau krijgen toegang tot gedeelde middelen op basis van een first in/first out-principe.