Resource Governor

Gilt für:SQL ServerAzure SQL Managed Instance

Sql Server Resource Governor ist ein Feature, das Sie zum Verwalten der SQL Server-Workload und des Systemressourcenverbrauchs verwenden können. Mit Resource Governor können Sie für CPU, physische E/A und Arbeitsspeicher Grenzwerte für die Menge angeben, die für eingehende Anwendungsanforderungen zur Verfügung steht.

Hinweis

Während Azure SQL-Datenbank Resource Governor (neben anderen Verfahren) zur Verwaltung von Ressourcen nutzt, wird die Benutzerkonfiguration von benutzerdefinierten Ressourcenpools und Arbeitsauslastungsgruppen in Azure SQL-Datenbank nicht unterstützt. Azure Synapse Analytics hat eine andere Implementierung eines ähnlichen Resource Governor-Verhaltens über das Feature zur Arbeitsauslastungsklassifizierung.

Vorteile der Ressourcenkontrolle

Mit der SQL-Ressourcenkontrolle können Sie SQL Server-Workloads und -Ressourcen verwalten, indem Sie Grenzen für die Ressourcenbelegung durch eingehende Anforderungen festlegen. Im Kontext der Ressourcenkontrolle bezeichnet Arbeitsauslastung eine Reihe von ähnlich dimensionierten Abfragen oder Anforderungen, die als einzelne Entität behandelt werden kann und sollte. Dies ist zwar keine Voraussetzung, je einheitlicher das Ressourcenverwendungsmuster einer Arbeitsauslastung jedoch ist, desto größer der Nutzen der Ressourcenkontrolle. Ressourcengrenzen können in Echtzeit mit minimaler Wirkung auf Arbeitsauslastungen, die ausgeführt werden, neu konfiguriert werden.

In einer Umgebung, in der mehrere verschiedene Arbeitsauslastungen auf dem gleichen Server vorhanden sind, ermöglicht Ihnen die Ressourcenkontrolle, diese Arbeitsauslastungen zu unterscheiden und freigegebene Ressourcen bei deren Anforderung auf Grundlage der von Ihnen angegebenen Grenzwerte zuzuweisen. Bei diesen Ressourcen handelt es sich um CPU, physische E/A und Arbeitsspeicher.

Die Ressourcenkontrolle bietet folgende Möglichkeiten:

  • 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 vorhersagbarer Leistung und SLA-Unterstützung für Arbeitsauslastungsmandanten in einer Umgebung mit mehreren Arbeitsauslastungen und mehreren Benutzern.

  • Isolieren und Eingrenzen von Endlosabfragen oder Einschränken von E/A-Ressourcen z. B. für DBCC CHECKDB-Vorgänge, die das E/A-Subsystem stark beanspruchen und negative Auswirkungen auf andere Arbeitsauslastungen haben können

  • Hinzufügen einer differenzierten Ressourcennachverfolgung für Rückbuchungen, um den Verbrauchern von Serverressourcen ein zuverlässiges Abrechnungsmodell zu bieten.

Einschränkungen der Ressourcenkontrolle

Diese Version der Ressourcenkontrolle hat die folgenden Einschränkungen:

  • Die Ressourcenverwaltung ist auf das SQL Server-Datenbankmodul beschränkt. Ressourcenkontrolle kann nicht für Analysis Services, Integration Services und Reporting Services verwendet werden.

  • Es gibt keine Arbeitsauslastungsüberwachung oder Arbeitsauslastungsverwaltung zwischen SQL Server-Instanzen.

  • Die Ressourcenkontrolle kann OLTP-Arbeitsauslastungen zwar verwalten, allerdings befindet sich diese Art von Abfragen, die normalerweise nur sehr kurz sind, mitunter nicht lange genug auf der CPU, um Bandbreitenkontrollen anzuwenden. Dies verzerrt möglicherweise die Statistik, die für die CPU-Verwendung in Prozent zurückgegeben wird.

  • Die Möglichkeit der Steuerung der physischen E/A bezieht sich nur auf Benutzervorgänge und nicht auf Systemtasks. Zu den Systemtasks gehören Schreibvorgänge im Transaktionsprotokoll und LAZY WRITER-E/A-Vorgänge. Resource Governor wirkt sich hauptsächlich auf Benutzerlesevorgänge aus, da die meisten Schreibvorgänge üblicherweise von Systemtasks ausgeführt werden.

  • Für den internen Ressourcenpool können keine E/A-Schwellenwerte festgelegt werden.

Ressourcenkonzepte

Sie sollten mit den folgenden drei Konzepten vertraut sein, um die Ressourcenkontrolle effizient verwenden zu können:

  • Ressourcenpools. Ein Ressourcenpool stellt die physischen Ressourcen des Servers dar. Sie können sich einen Pool als virtuelle SQL Server-Instanz innerhalb einer SQL Server-Instanz vorstellen. Beim Installieren von SQL Server werden zwei Ressourcenpools (intern und standard) erstellt. Die Ressourcenkontrolle unterstützt auch benutzerdefinierte Ressourcenpools. Weitere Informationen finden Sie unter Resource Governor Resource Pool.

  • Arbeitsauslastungsgruppen. Eine Arbeitsauslastungsgruppe dient als Container für Sitzungsanforderungen mit ähnlichen Klassifizierungskriterien. Arbeitsauslastungen ermöglichen die gemeinsame Überwachung der Sitzungen und definieren Richtlinien für die Sitzungen. Jede Arbeitsauslastungsgruppe befindet sich in einem eigenen Ressourcenpool. Zwei Workloadgruppen (intern und Standard) werden erstellt und ihren entsprechenden Ressourcenpools zugeordnet, wenn SQL Server installiert wird. Die Ressourcenkontrolle unterstützt auch benutzerdefinierte Arbeitsauslastungsgruppen. Weitere Informationen finden Sie unter Resource Governor Workload Group.

  • Klassifizierung: Beim Klassifizierungsprozess werden eingehende Sitzungen auf Grundlage der Sitzungseigenschaften einer Arbeitsauslastungsgruppe zugewiesen. Sie können die Klassifizierungslogik anpassen, indem Sie eine benutzerdefinierte Funktion schreiben, die als Klassifizierungsfunktion bezeichnet wird. Die Ressourcenkontrolle unterstützt auch eine benutzerdefinierte Klassifizierungsfunktion für die Implementierung von Klassifizierungsregeln. Weitere Informationen finden Sie unter Resource Governor Classifier Function.

Hinweis

Dedizierte Administratorverbindungen (DACs) werden nicht über die Ressourcenkontrolle gesteuert. DAC-Abfragen, die in der internen Arbeitsauslastungsgruppe und im internen Ressourcenpool ausgeführt werden, müssen nicht klassifiziert werden.

Im Zusammenhang mit der Ressourcenkontrolle können Sie die obigen Konzepte als Komponenten betrachten. In der folgenden Abbildung sehen Sie diese Komponenten und ihre Beziehung zueinander in der Datenbank-Engine-Umgebung. 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 wird klassifiziert (Klassifikation).

  • Die Arbeitsauslastung der Sitzung wird an eine Arbeitsauslastungsgruppe, z. B. Gruppe 4, geleitet.

  • Die Arbeitsauslastungsgruppe verwendet den ihr zugeordneten Ressourcenpool, zum Beispiel Pool 2.

  • Durch den Ressourcenpool werden die von der Anwendung (zum Beispiel Anwendung 3) benötigten Ressourcen bereitgestellt und begrenzt.

Resource Governor Functional Components

Tasks der Ressourcenkontrolle

Taskbeschreibung Thema
Beschreibt, wie die Ressourcenkontrolle aktiviert wird. Aktivieren der Ressourcenkontrolle
Beschreibt, wie die Ressourcenkontrolle deaktiviert wird. Deaktivieren der Ressourcenkontrolle
Beschreibt, wie ein Ressourcenpool erstellt, geändert und gelöscht wird. Ressourcenpool für die Ressourcenkontrolle
Beschreibt, wie eine Arbeitsauslastungsgruppe erstellt, geändert, verschoben und gelöscht wird. Arbeitsauslastungsgruppe der Ressourcenkontrolle
Beschreibt, wie benutzerdefinierte Klassifizierungsfunktionen erstellt und getestet werden. Klassifizierungsfunktion der Ressourcenkontrolle
Beschreibt, wie die Ressourcenkontrolle mithilfe einer Vorlage konfiguriert wird. Konfigurieren der Ressourcenkontrolle mit einer Vorlage
Beschreibt, wie Eigenschaften der Ressourcenkontrolle angezeigt werden. Anzeigen der Eigenschaften der Ressourcenkontrolle

Weitere Informationen

Datenbank-Engine-Instanzen (SQL Server)