Freigeben über


Ressourcengouverneur

Gilt für:SQL ServerAzure SQL Managed Instance

Sie können den Resource Governor verwenden, um den Ressourcenverbrauch der Datenbank-Engine zu verwalten und Richtlinien für Benutzer-Workloads durchzusetzen. Der Resource Governor ermöglicht es Ihnen, die Menge an CPU, Speicher und physischem E/A zu reservieren oder zu begrenzen, die Benutzerabfrage-Workloads verwenden können. Sie können auch das Verhalten der Ressourcennutzung jeder Abfrage ändern, z. B. den Grad der Parallelität oder die Größe einer Speichererteilung.

Ab SQL Server 2025 (17.x) Preview können Sie die Ressourcenkontrolle verwenden, um Grenzwerte für die Gesamtmenge des tempdb von einer Anwendung oder Benutzerarbeitsauslastung verbrauchten Speicherplatzes zu erzwingen. Weitere Informationen finden Sie unter Tempdb-Speicherplatzressourcenverwaltung.

Für Konfigurations- und Überwachungsbeispiele und um die besten Praktiken für den Resource Governor zu erlernen, siehe Tutorial: Resource Governor-Konfigurationsbeispiele und bewährte Verfahren

Hinweis

Während Azure SQL-Datenbank den Resource Governor (neben anderen Techniken) nutzt, um Ressourcen zu verwalten, wird die Benutzerkonfiguration von Ressourcenpools und Arbeitslastgruppen in der Azure SQL-Datenbank nicht unterstützt.

Azure Synapse Analytics hat eine andere Implementierung eines ähnlichen Verhaltens Ressourcenkontrolle über die Arbeitslastklassifizierungsfunktion.

Vorteile des Ressource Governors

Der Ressource Governors ermöglicht es Ihnen, Datenbank-Engine-Workloads und -Ressourcen zu verwalten, indem Sie Reservierungen und Begrenzungen für den Ressourcenverbrauch durch Anfragen festlegen. Im Kontext des Resource Governor ist eine Arbeitslast eine Menge von Abfragen (Anfragen), die als eine einzige Einheit behandelt werden können und sollten. Beispielsweise können alle Abfragen, die von einer bestimmten Anwendung ausgeführt werden, als Arbeitsauslastung betrachtet werden. Obwohl dies keine Voraussetzung ist, gilt: Je einheitlicher das Ressourceneinsatzmuster einer Arbeitslast ist, desto mehr Vorteile können Sie wahrscheinlich aus dem Resource Governor ziehen.

Wenn mehrere unterschiedliche Workloads auf demselben Server vorhanden sind, können Sie mithilfe der Ressourcenkontrolle Ressourcen unterschiedlich unterschiedlichen Arbeitslasten zuordnen, basierend auf den von Ihnen angegebenen Grenzwerten.

Einige der vom Ressourcengouverneur unterstützten Nutzungsszenarien sind:

  • Bereitstellen der Mehrinstanzenfähigkeit und Ressourcenisolation für einzelne SQL Server-Instanzen, die mehrere Clientarbeitsauslastungen verarbeiten. Das heißt, Sie können die verfügbaren Serverressourcen auf die Arbeitsauslastungen verteilen und dadurch Ressourcenkonflikte zwischen ihnen minimieren.
  • Bereitstellen von vorhersehbarer Leistung und Unterstützung von SLAs für Arbeitslasten in einer Umgebung mit mehreren Arbeitslasten und mehreren Benutzern.
  • Isolieren und begrenzen Sie unkontrollierte Abfragen oder beschränken Sie die E/A-Ressourcen für E/A-intensive Vorgänge, die das E/A-Subsystem auslasten und andere Arbeitslasten negativ beeinflussen können.
  • Fügen Sie eine feinkörnige Ressourcenablaufverfolgung für die Rückbelastung des Ressourceneinsatzes hinzu und bieten Sie den Verbrauchern von Serverressourcen eine vorhersehbare Abrechnung.

Interoperabilität und Einschränkungen

  • Resource Governor kann mit Always On Verfügbarkeitsgruppen und Failover-Clusterinstanzen verwendet werden. Es gelten die folgenden Bedingungen:
    • Bei Verwendung in SQL Server muss die Ressourcenkontrolle für jede SQL Server-Instanz konfiguriert werden, die eine Verfügbarkeitsgruppe hosten soll. Die Konfiguration der Ressourcenkontrolle wird nicht vom primären Verfügbarkeitsgruppenreplikat an sekundäre Replikate weitergegeben. Es wird empfohlen, die gleiche Ressourcenverwaltungskonfiguration für alle SQL Server-Datenbankmodulinstanzen zu verwenden, die Verfügbarkeitsreplikate hosten. Dadurch wird ein konsistentes Verhalten sichergestellt, wenn Failovers in Verfügbarkeitsgruppen geschehen.
    • Wenn der Resource Governor in Azure SQL Managed Instance verwendet wird, wird die Konfiguration vom primären Replikat auf alle sekundären Replikate übertragen, da die master-Datenbank des primären Replikats auf alle sekundären Replikate repliziert wird. Dies umfasst Hochverfügbarkeit und Geo-Replikationssekundärsysteme. Weitere Informationen finden Sie unter Resource Governor.
    • Wenn Sie enthaltene Verfügbarkeitsgruppen verwenden, finden Sie weitere Informationen unter Interaktionen mit anderen Features .
  • Die Ressourcenverwaltung ist auf die SQL Server-Datenbank-Engine beschränkt. Der Ressource Govenor kann nicht für Analysis Services, Integration Services und Reporting Services verwendet werden.
  • Der Resource Governor bietet keine Überwachungs- oder Verwaltungsfunktionen für Arbeitslasten über mehrere SQL Server-Instanzen hinweg.
  • Sehr kurze Abfragen, z. B. Abfragen in einigen OLTP-Workloads, verwenden möglicherweise nicht die CPU lange genug, um CPU-Bandbreitensteuerelemente anzuwenden. Dies kann die CPU-Auslastungsstatistik verzerren und die Effektivität der CPU-Ressourcengovernance einschränken.
  • Die Möglichkeit, physische E/A zu steuern, gilt nur für Benutzervorgänge und nicht für Systemaufgaben. Systemaufgaben führen Transaktionsprotokoll-, Checkpoint- und Lazy-Writer-E/A aus. Der Ressource Govenor steuert die physischen Lese-E/A-Vorgänge von Benutzern, jedoch nicht die Schreib-E/A-Vorgänge, die von Systemaufgaben ausgeführt werden.
  • Sie können die Steuerung der Ressourcenverwaltung für den internal-Ressourcenpool und die Arbeitslastgruppe nicht ändern.

Ressourcenkonzepte

Die folgenden drei Konzepte sind grundlegend für das Verständnis und die Verwendung des Resource Governors:

  • Ressourcenpool. Ein Ressourcenpool stellt einen Container für die physischen Ressourcen des Servers dar, z. B. CPU, Arbeitsspeicher und E/A. Zwei integrierte Ressourcenpools, internal und default, sind immer vorhanden. Der Ressourcen-Manager unterstützt auch benutzerdefinierte Ressourcenpools. Je nach Konfiguration können Ressourcen in einem Ressourcenpool für andere Pools freigegeben oder reserviert werden. Weitere Informationen finden Sie unter Resource Governor-Ressourcenpool.
  • Arbeitslastgruppe. Eine Arbeitslastgruppe stellt einen Container für Sitzungen dar, die auf die gleiche Weise klassifiziert werden. Eine Arbeitslastgruppe ermöglicht die aggregierte Überwachung des Ressourcenverbrauchs von Sitzungen und Anfragen und definiert Anfragerichtlinien. Jede Arbeitsauslastungsgruppe befindet sich in einem eigenen Ressourcenpool. Zwei integrierte Arbeitslastgruppen, internal und default, existieren immer und sind den Ressourcenpools internal und default zugeordnet. Der Ressource Govenor unterstützt auch benutzerdefinierte Arbeitslastgruppen. Weitere Informationen finden Sie unter Resource Governor-Arbeitslastgruppe.
  • Klassifizierung. Der Klassifizierungsprozess weist eingehende Sitzungen einer Workload-Gruppe basierend auf den Attributen der Sitzung, wie Anmeldename oder Programmname, unter Verwendung Ihrer benutzerdefinierten Klassifizierungslogik zu. Sobald eine Sitzung in eine Workloadgruppe klassifiziert wurde, unterliegen alle Anforderungen, die in dieser Sitzung ausgeführt werden, den Workload-Gruppenrichtlinien. Sie definieren die Klassifizierungslogik, indem Sie eine skalare benutzerdefinierte Funktion schreiben, die als Klassifiziererfunktion bezeichnet wird. Weitere Informationen finden Sie unter Resource Governor-Klassifizierungsfunktion.

Hinweis

Der Ressource Govenor übt keine Kontrolle über eine dedizierte Administratorverbindung (DAC) aus. DAC-Abfragen werden immer in der internal Arbeitslastgruppe und dem Ressourcenpool ausgeführt.

Die folgende Abbildung zeigt die Komponenten des Ressourcengovernors und deren Beziehung zueinander innerhalb der Datenbank-Engine. Von der Verarbeitungsperspektive aus stellt sich der vereinfachte Ablauf wie folgt dar:

  • Es gibt eine eingehende Verbindung für eine Sitzung (Sitzung 1 von n).
  • Die Sitzung ist vertraulich.
  • Mithilfe des Klassifizierungsergebnisses wird die Sitzung einer Arbeitslastgruppe zugewiesen, z. B. Group 4.
  • Die Arbeitslastgruppe erzwingt ihre Richtlinien für alle Anfragen und verwendet den Ressourcenpool, mit dem sie verknüpft ist, zum Beispiel Pool 2.
  • Der Ressourcenpool bietet und begrenzt die ressourcen, die von der Anwendung benötigt werden, z. B. Application 3.

Diagramm, das die Komponenten des Resource Governor und die Verarbeitung eingehender Sitzungen zeigt.

Resource Governor-Aufgaben

Aufgabenbeschreibung Artikel
Anzeigen von Konfigurationsbeispielen Resource Governor-Konfigurationsbeispiele und bewährte Verfahren.
Resource Governor aktivieren Resource Governor aktivieren
Resource Governor deaktivieren Resource Governor deaktivieren
Erstellen, Ändern und Ablegen eines Ressourcenpools Resource Governor-Ressourcenpool
Erstellen, Ändern, Verschieben und Ablegen einer Workloadgruppe Resource Governor-Arbeitslastgruppe
Erstellen und Testen einer benutzerdefinierten Klassifiziererfunktion Resource Governor-Klassifizierungsfunktion
Resource Governor mit einer Vorlage konfigurieren Resource Governor mit einer Vorlage konfigurieren
Resource Governor-Eigenschaften anzeigen Eigenschaften der Ressourcenverwaltung anzeigen und ändern
Festlegen eines Grenzwerts für tempdb den Speicherplatzverbrauch Verwaltung der Tempdb-Ressourcen