Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur arbetsgrupper kan användas för att konfigurera arbetsbelastningsisolering, hantera resurser och tillämpa regler för exekvering av frågor.
Arbetsbelastningsgrupper
Arbetsbelastningsgrupper är containrar för en uppsättning begäranden och utgör grunden för hur arbetsbelastningshantering, inklusive arbetsbelastningsisolering, 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. En arbetsbelastningsgrupp med namnet wgDataLoads definierar till exempel 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 belastningsgrupper ger möjlighet att definiera isolering, inneslutning, resurskrav och följa exekveringsregler.
Resursförvaltning
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ärandetiden. 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 flexibla jämfört med minne som är dedikerat till en begäran under hela exekveringen. Eftersom CPU är en flytande resurs kan oanvända CPU-resurser förbrukas av alla arbetsbelastningsgrupper. Det innebär att processoranvä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 definitionen CAP_PERCENTAGE_RESOURCE 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 CREATE WORKLOAD GROUP (SKAPA ARBETSBELASTNINGSGRUPP ). För kontinuerliga körningsarbetsbelastningar som måste följa snäva serviceavtal säkerställer isolering att resurser alltid är tillgängliga för arbetsbelastningsgruppen.
När du konfigurerar arbetsbelastningsisolering definieras implicit en garanterad samtidighetsnivå. Till exempel garanteras en arbetsbelastningsgrupp med en MIN_PERCENTAGE_RESOURCE inställd på 30% och REQUEST_MIN_RESOURCE_GRANT_PERCENT anges till 2% 15 samtidighet. Konkurrensnivån garanteras eftersom 15-2% platser för resurser är reserverade i arbetsgruppen vid alla tillfällen (oavsett konfigurationen av REQUEST_MAX_RESOURCE_GRANT_PERCENT). 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 metoden nedan för att fastställa garanterad samtidighet:
[Garanterad samtidighet] = [MIN_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]
Anmärkning
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 fungerar begäranden i den delade resurspoolen . Åtkomst till resurser i den delade poolen garanteras inte och tilldelas på en prioritetsbas .
Konfiguration av arbetsbelastningsisolering bör utfö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ändarna 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 strikt, 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:erna och lånar en liten resursnivå från systemreserverade resurser.
Anmärkning
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 används baserat på arbetsbelastningens betydelse.
Inneslutning av arbetsbelastningar
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 inneslutning av arbetsbelastningar 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 samtidighetsnivå på 60 för belastningsgruppen. Överväg den metod som ingår nedan för att fastställa maximal samtidighet:
[Maximal Samtidighet] = [CAP_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]
Anmärkning
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 . Resursen är i det här fallet minne. Cpu-resursstyrning beskrivs i avsnittet Resursstyrning .
Anmärkning
REQUEST_MAX_RESOURCE_GRANT_PERCENT är en valfri parameter som som standard har det värde som anges för REQUEST_MIN_RESOURCE_GRANT_PERCENT.
Precis som när du väljer en resursklass innebär konfigurationen av REQUEST_MIN_RESOURCE_GRANT_PERCENT att du 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 kan du 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 du schemalägger en begäran 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 schemaläggs.
Anmärkning
REQUEST_MIN_RESOURCE_GRANT_PERCENT och REQUEST_MAX_RESOURCE_GRANT_PERCENT har effektiva värden som är beroende av de effektiva värdena för MIN_PERCENTAGE_RESOURCE och CAP_PERCENTAGE_RESOURCE. Se sys.dm_workload_management_workload_groups_stats för effektiva körningsvärden.
Regler för utförande
På ad hoc-rapporteringssystem kan kunder av misstag köra okontrollerbara frågor som allvarligt påverkar andras produktivitet. Systemadministratörer tvingas ägna tid åt att avsluta skenande frågor för att frigöra systemresurser. Arbetsgrupper erbjuder möjligheten att konfigurera en tidsgränsregel för körning av frågor 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
Delade poolresurser ä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 förfrågningar. Arbetsbelastningsgrupper med en CAP_PERCENTAGE_RESOURCE större än MIN_PERCENTAGE_RESOURCE använder också delade resurser. Mängden resurser som är tillgängliga i den delade poolen beräknas på följande sätt.
[Delad pool] = 100 – [summan av MIN_PERCENTAGE_RESOURCE över alla arbetsbelastningsgrupper]
Åtkomst till resurser i den delade poolen fördelas utifrån betydelse. Begäranden med samma prioritetsnivå får åtkomst till delade poolresurser först in/först ut.