Azure Synapse Analytics-arbetsbelastningsgruppisolering

Den här artikeln beskriver hur arbetsbelastningsgrupper kan användas för att konfigurera arbetsbelastningsisolering, innehålla resurser och tillämpa körningsregler för frågekörning.

Arbetsbelastningsgrupper

Arbetsbelastningsgrupper är containrar för en uppsättning begäranden och utgör grunden för hur arbetsbelastningshantering, inklusive isolering av arbetsbelastningar, konfigureras i ett system. Arbetsbelastningsgrupper skapas med syntaxen CREATE WORKLOAD GROUP (SKAPA ARBETSBELASTNINGSGRUPP ). En enkel konfiguration för arbetsbelastningshantering kan hantera datainläsningar och användarfrågor. Till exempel definierar en arbetsbelastningsgrupp med namnet wgDataLoads arbetsbelastningsaspekter för data som läses in i systemet. Dessutom definierar en arbetsbelastningsgrupp med namnet wgUserQueries arbetsbelastningsaspekter för användare som kör frågor för att läsa data från systemet.

Följande avsnitt beskriver hur arbetsbelastningsgrupper ger möjlighet att definiera isolering, inneslutning, begära resursdefinition och följa körningsregler.

Resursstyrning

Arbetsbelastningsgrupper styr minne och CPU-resurser. Disk- och nätverks-I/O samt tempdb styrs inte. Resursstyrning för minne och CPU är följande:

Minnet styrs på begärandenivå och lagras under hela begäran. Mer information om hur du konfigurerar mängden minne per begäran finns i Avsnittet om resurser per begärandedefinition . Parametern MIN_PERCENTAGE_RESOURCE för arbetsbelastningsgruppen ägnar minnet åt den arbetsbelastningsgruppen exklusivt. Parametern CAP_PERCENTAGE_RESOURCE för arbetsbelastningsgruppen är en hård gräns för det minne som en arbetsbelastningsgrupp kan använda.

CPU-resurser styrs på arbetsbelastningsgruppsnivå och delas av alla begäranden i en arbetsbelastningsgrupp. CPU-resurser är flytande jämfört med minne som är dedikerat till en begäran under hela körningen. Med tanke på att CPU är en flytande resurs kan oanvända CPU-resurser förbrukas av alla arbetsbelastningsgrupper. Det innebär att CPU-användningen kan överskrida parametern CAP_PERCENTAGE_RESOURCE för arbetsbelastningsgruppen. Det innebär också att parametern MIN_PERCENTAGE_RESOURCE för arbetsbelastningsgruppen inte är en hård reservation som minnet är. När CPU-resurser är under konkurrens justeras användningen efter den CAP_PERCENTAGE_RESOURCE definitionen för arbetsbelastningsgrupper.

Arbetsbelastningsisolering

Arbetsbelastningsisolering innebär att resurser är reserverade exklusivt för en arbetsbelastningsgrupp. Arbetsbelastningsisolering uppnås genom att konfigurera parametern MIN_PERCENTAGE_RESOURCE till större än noll i syntaxen SKAPA ARBETSBELASTNINGSGRUPP . För arbetsbelastningar för kontinuerlig körning som behöver följa snäva serviceavtal säkerställer isoleringen att resurser alltid är tillgängliga för arbetsbelastningsgruppen.

När du konfigurerar arbetsbelastningsisolering definieras implicit en garanterad samtidighetsnivå. En arbetsbelastningsgrupp med en MIN_PERCENTAGE_RESOURCE inställd på 30 % och REQUEST_MIN_RESOURCE_GRANT_PERCENT inställd på 2 % garanteras 15 samtidighet. Samtidighetsnivån garanteras eftersom 15–2 % resurser är reserverade i arbetsbelastningsgruppen hela tiden (oavsett hur REQUEST_MAX_RESOURCE_GRANT_PERCENT har konfigurerats). Om REQUEST_MAX_RESOURCE_GRANT_PERCENT är större än REQUEST_MIN_RESOURCE_GRANT_PERCENT och CAP_PERCENTAGE_RESOURCE är större än MIN_PERCENTAGE_RESOURCE kan ytterligare resurser läggas till per begäran (baserat på resurstillgänglighet). Om REQUEST_MAX_RESOURCE_GRANT_PERCENT och REQUEST_MIN_RESOURCE_GRANT_PERCENT är lika och CAP_PERCENTAGE_RESOURCE är större än MIN_PERCENTAGE_RESOURCE är ytterligare samtidighet möjlig. Överväg nedanstående metod för att fastställa garanterad samtidighet:

[Garanterad samtidighet] = [MIN_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Anteckning

Det finns specifika minimivärden på tjänstnivå för min_percentage_resource. Mer information finns i Effektiva värden för ytterligare information.

I avsaknad av arbetsbelastningsisolering körs begäranden i den delade resurspoolen . Åtkomst till resurser i den delade poolen är inte garanterad och tilldelas på prioritetsbasis .

Konfiguration av arbetsbelastningsisolering bör göras med försiktighet eftersom resurserna allokeras till arbetsbelastningsgruppen även om det inte finns några aktiva begäranden i arbetsbelastningsgruppen. Överkonfigurering av isolering kan leda till minskad total systemanvändning.

Användare bör undvika en lösning för arbetsbelastningshantering som konfigurerar 100 % arbetsbelastningsisolering: 100 % isolering uppnås när summan av min_percentage_resource som konfigurerats för alla arbetsbelastningsgrupper är lika med 100 %. Den här typen av konfiguration är alltför restriktiv och stel, vilket ger lite utrymme för resursbegäranden som av misstag klassificeras felaktigt. Det finns en bestämmelse som tillåter att en begäran körs från arbetsbelastningsgrupper som inte har konfigurerats för isolering. De resurser som allokeras till den här begäran visas som noll i system-DMV:er och lånar en liten resursbidragsnivå från systemreserverade resurser.

Anteckning

För att säkerställa optimal resursanvändning bör du överväga en lösning för arbetsbelastningshantering som utnyttjar viss isolering för att säkerställa att serviceavtalen uppfylls och blandas med delade resurser som nås baserat på arbetsbelastningens betydelse.

Arbetsbelastnings inneslutning

Arbetsbelastningsbegränsning syftar på att begränsa mängden resurser som en arbetsbelastningsgrupp kan använda. Arbetsbelastningens inneslutning uppnås genom att konfigurera parametern CAP_PERCENTAGE_RESOURCE till mindre än 100 i syntaxen CREATE WORKLOAD GROUP (SKAPA ARBETSBELASTNINGSGRUPP ). Tänk på scenariot där användarna behöver läsåtkomst till systemet så att de kan köra en konsekvensanalys via ad hoc-frågor. Dessa typer av begäranden kan ha en negativ inverkan på andra arbetsbelastningar som körs i systemet. Om du konfigurerar inneslutning säkerställer du att mängden resurser är begränsad.

När du konfigurerar arbetsbelastningens inneslutning definieras implicit en maximal samtidighetsnivå. Med en CAP_PERCENTAGE_RESOURCE inställd på 60 % och en REQUEST_MIN_RESOURCE_GRANT_PERCENT inställd på 1 %, tillåts upp till en 60-samtidighetsnivå för arbetsbelastningsgruppen. Överväg metoden nedan för att fastställa maximal samtidighet:

[Maximal samtidighet] = [CAP_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Anteckning

Den effektiva CAP_PERCENTAGE_RESOURCE för en arbetsbelastningsgrupp når inte 100 % när arbetsbelastningsgrupper med MIN_PERCENTAGE_RESOURCE på en nivå som är större än noll skapas. Se sys.dm_workload_management_workload_groups_stats för effektiva körningsvärden.

Definition av resurser per begäran

Arbetsbelastningsgrupper tillhandahåller en mekanism för att definiera den minsta och högsta mängden resurser som allokeras per begäran med parametrarna REQUEST_MIN_RESOURCE_GRANT_PERCENT och REQUEST_MAX_RESOURCE_GRANT_PERCENT i syntaxen CREATE WORKLOAD GROUP (SKAPA ARBETSBELASTNINGSGRUPP ). Resursen är i det här fallet minne. Styrning av processorresurser beskrivs i avsnittet Resursstyrning .

Anteckning

REQUEST_MAX_RESOURCE_GRANT_PERCENT är en valfri parameter som standard till samma värde som anges för REQUEST_MIN_RESOURCE_GRANT_PERCENT.

Precis som när du väljer en resursklass konfigurerar du REQUEST_MIN_RESOURCE_GRANT_PERCENT anger värdet för de resurser som används av en begäran. Mängden resurser som anges av det angivna värdet garanteras för allokering till begäran innan den börjar köras. För kunder som migrerar från resursklasser till arbetsbelastningsgrupper bör du överväga att följa artikeln Så här mappar du från resursklasser till arbetsbelastningsgrupper som utgångspunkt.

Genom att konfigurera REQUEST_MAX_RESOURCE_GRANT_PERCENT till ett värde som är större än REQUEST_MIN_RESOURCE_GRANT_PERCENT kan systemet allokera fler resurser per begäran. När en begäran schemaläggs avgör systemet den faktiska resursallokeringen till begäran, som är mellan REQUEST_MIN_RESOURCE_GRANT_PERCENT och REQUEST_MAX_RESOURCE_GRANT_PERCENT, baserat på resurstillgänglighet i delad pool och aktuell belastning på systemet. Resurserna måste finnas i den delade resurspoolen när frågan är schemalagd.

Anteckning

REQUEST_MIN_RESOURCE_GRANT_PERCENT och REQUEST_MAX_RESOURCE_GRANT_PERCENT har effektiva värden som är beroende av effektiva MIN_PERCENTAGE_RESOURCE och CAP_PERCENTAGE_RESOURCE värden. Se sys.dm_workload_management_workload_groups_stats för effektiva körningsvärden.

Körningsregler

I ad hoc-rapporteringssystem kan kunder av misstag köra skenande frågor som allvarligt påverkar andras produktivitet. Systemadministratörer tvingas ägna tid åt att döda skenande frågor för att frigöra systemresurser. Arbetsbelastningsgrupper erbjuder möjligheten att konfigurera en tidsgränsregel för frågekörning för att avbryta frågor som har överskridit det angivna värdet. Regeln konfigureras genom att ange parametern QUERY_EXECUTION_TIMEOUT_SEC i syntaxen CREATE WORKLOAD GROUP (SKAPA ARBETSBELASTNINGSGRUPP ).

Resurser för delad pool

Resurser för delad pool är de resurser som inte har konfigurerats för isolering. Arbetsbelastningsgrupper med en MIN_PERCENTAGE_RESOURCE inställd på noll utnyttjar resurser i den delade poolen för att köra begäranden. Arbetsbelastningsgrupper med en CAP_PERCENTAGE_RESOURCE större än MIN_PERCENTAGE_RESOURCE använde också delade resurser. Mängden resurser som är tillgängliga i den delade poolen beräknas på följande sätt.

[Delad pool] = 100 – [summa för MIN_PERCENTAGE_RESOURCE alla arbetsbelastningsgrupper]

Åtkomst till resurser i den delade poolen allokeras på grundval av betydelse . Begäranden med samma prioritetsnivå kommer att få åtkomst till resurser för delade pooler först in/först ut.

Nästa steg