Dela via


Resursguvernör

gäller för:SQL ServerAzure SQL Managed Instance

Du kan använda resursguvernören för att hantera resursförbrukning för databasmotorn och tillämpa principer för användararbetsbelastningar. Med Resource Governor kan du reservera eller begränsa mängden PROCESSOR, minne och fysisk I/O som arbetsbelastningar för användarfrågor kan använda. Du kan också ändra resursförbrukningsbeteendet för varje fråga, till exempel graden av parallellitet eller storleken på ett minnesbidrag.

Från och med förhandsversionen av SQL Server 2025 (17.x) kan du använda resource governor för att tillämpa gränser för den totala mängden tempdb utrymme som förbrukas av ett program eller en användararbetsbelastning. Mer information finns i Tempdb-resursstyrning för utrymme.

För konfigurations- och övervakningsexempel samt för att lära dig resursguvernörens bästa praxis, se Självstudie: Konfigurationsexempel och bästa praxis för resursguvernör.

Notera

Även om Azure SQL Database utnyttjar resursguvernören (bland andra tekniker) för att hantera resurser, stöds inte användarkonfiguration av resurspooler och arbetsbelastningsgrupper i Azure SQL Database.

Azure Synapse Analytics har en annan implementering av ett liknande resursstyrningsbeteende via arbetsbelastningsklassificeringsfunktionen .

Fördelar med resursguvernör

Med Resource Governor kan du hantera arbetsbelastningar och resurser för databasmotorn genom att ange reservationer och begränsningar för resursförbrukning efter begäranden. I resursguvernörskontexten är en arbetsbelastning en uppsättning frågor (begäranden) som kan och bör behandlas som en enda entitet. Till exempel kan alla frågor som körs av ett visst program betraktas som en arbetsbelastning. Även om detta inte är ett krav, desto mer enhetligt är resursanvändningsmönstret för en arbetsbelastning, desto större fördel kommer du sannolikt att få av resursguvernören.

Om flera distinkta arbetsbelastningar finns på samma server kan du med resursguvernören allokera resurser på olika sätt till olika arbetsbelastningar, baserat på de gränser som du anger.

Några av de användningsscenarier som stöds av resource governor är:

  • Tillhandahålla isolering av flera klienter och resurser på enskilda instanser av SQL Server som hanterar flera klientarbetsbelastningar. Du kan alltså dela upp de tillgängliga resurserna på en server mellan arbetsbelastningarna och minimera de problem som kan uppstå när arbetsbelastningar konkurrerar om resurser.
  • Tillhandahålla förutsägbara prestanda- och supportavtal för arbetsbelastningar i en miljö med flera arbetsbelastningar och flera användare.
  • Isolera och begränsa skenande frågeställningar eller begränsa I/O-resurser för I/O-intensiva operationer som kan överbelasta I/O-undersystemet och påverka andra arbetsflöden negativt.
  • Lägg till detaljerad resursspårning för återbetalningar av resursanvändning och ge förutsägbar fakturering till konsumenter av serverresurser.

Samverkan och begränsningar

  • Resursguvernör kan användas med AlwaysOn-tillgänglighetsgrupper och redundansklusterinstanser. Följande överväganden gäller:
    • När den används i SQL Server måste resursguvernören konfigureras på varje SQL Server-instans som är värd för en tillgänglighetsgrupp. Resource Governor-konfigurationen sprids inte från den primära tillgänglighetsgruppens replik till sekundära repliker. Vi rekommenderar att du använder samma konfiguration av resursguvernören för alla SQL Server Database Engine-instanser som är värdar för tillgänglighetsrepliker. Detta säkerställer konsekvent beteende när övergångar för tillgänglighetsgrupper sker.
    • När den används i Azure SQL Managed Instance sprids resource governor-konfigurationen från den primära repliken till alla sekundära repliker eftersom master databasen för den primära repliken replikeras till alla sekundära repliker. Detta omfattar sekundärfiler för hög tillgänglighet och geo-replikering. Mer information finns i Resursguvernör.
    • Mer information finns i Interaktioner med andra funktioner om du använder inneslutna tillgänglighetsgrupper .
  • Resurshantering är begränsad till SQL Server Database Engine. Resursguvernören kan inte användas för Analysis Services, Integration Services och Reporting Services.
  • Resursguvernören tillhandahåller inte arbetsbelastningsövervakning eller arbetsbelastningshantering över flera SQL Server-instanser.
  • Mycket korta frågor, till exempel frågor i vissa OLTP-arbetsbelastningar, kanske inte använder CPU tillräckligt länge för att tillämpa processorbandbreddskontroller. Detta kan förvränga cpu-användningsstatistiken och begränsa effektiviteten för styrning av processorresurser.
  • Möjligheten att styra fysisk I/O gäller endast för användaråtgärder och inte systemaktiviteter. Systemuppgifter utförs för transaktionsloggen, kontrollpunkten och lazy writer-I/O. Resursguvernören styr användarens fysiska läsningar I/O men inte I/O-skrivåtgärder som utförs av systemuppgifter.
  • Du kan inte ändra resursstyrningskontroller för internal resurspool och arbetsbelastningsgrupp.

Resursbegrepp

Följande tre begrepp är grundläggande för att förstå och använda resource governor:

  • Resurspool. En resurspool representerar en container för serverns fysiska resurser, till exempel CPU, minne och I/O. Två inbyggda resurspooler, internal och default, finns alltid. Resursguvernören stöder också användardefinierade resurspooler. Beroende på konfiguration kan resurser i en resurspool delas med andra pooler eller reserveras. Mer information finns i resurspoolen Resource Governor.
  • Arbetsbelastningsgrupp. En arbetsbelastningsgrupp representerar en container för sessioner som klassificeras på samma sätt. En arbetsbelastningsgrupp möjliggör aggregerad övervakning av sessions- och begäranderesursförbrukning och definierar begärandeprinciper. Varje arbetsbelastningsgrupp finns i en resurspool. Två inbyggda arbetsbelastningsgrupper, internal och default, finns alltid och mappas till internal respektive default resurspooler. Resursguvernören stöder även användardefinierade arbetsbelastningsgrupper. Mer information finns i arbetsbelastningsgruppen Resource Governor.
  • Klassificering. Klassificeringsprocessen tilldelar inkommande sessioner till en arbetsbelastningsgrupp baserat på sessionens attribut, till exempel inloggningsnamn eller programnamn, med hjälp av din anpassade klassificeringslogik. När en session har klassificerats i en arbetsbelastningsgrupp omfattas alla begäranden som körs på den sessionen av grupprinciperna för arbetsbelastningar. Du definierar klassificeringslogik genom att skriva en skalär användardefinierad funktion som kallas klassificerare. För mer information, se resursstyrningsklassificeringsfunktionen.

Notera

Resursguvernören tillämpar inga kontroller på en dedikerad administratörsanslutning (DAC). DAC-frågor körs alltid i internal arbetsbelastningsgrupp och resurspool.

Följande bild visar resursguvernörskomponenter och deras relation med varandra i databasmotorn. Från ett bearbetningsperspektiv är det förenklade flödet följande:

  • Det finns en inkommande anslutning för en session (session 1 av n).
  • Sessionen är konfidentiell.
  • Med hjälp av klassificeringsresultatet tilldelas sessionen till en arbetsbelastningsgrupp, till exempel Group 4.
  • Arbetsbelastningsgruppen tillämpar sina principer på alla begäranden och använder den resurspool som den är associerad med, till exempel Pool 2.
  • Resurspoolen tillhandahåller och begränsar de resurser som krävs av programmet, till exempel Application 3.

Diagram som visar komponenter i resursstyrning och bearbetning av inkommande sessioner.

Uppgifter för resursguvernör

Uppgiftsbeskrivning Artikel
Visa konfigurationsexempel Exempel på resursguvernörskonfiguration och metodtips
Aktivera resursguvernör Aktivera för resursguvernör
Inaktivera resursstyrning Inaktivera resurshanterare
Skapa, ändra och släppa en resurspool resurspoolen Resource Governor
Skapa, ändra, flytta och släppa en arbetsbelastningsgrupp resursguvernörens arbetsbelastningsgrupp
Skapa och testa en användardefinierad klassificerare Resource Governor-klassificeringsfunktionen
Konfigurera resursguvernör med hjälp av en mall Konfigurera resursguvernör med hjälp av en mall
Visa egenskaper för resursguvernör Visa och ändra egenskaper för resursguvernör
Ange en gräns för tempdb utrymmesförbrukning Styrning av tempdb-utrymmesresurser