Rechenkapazitätsgrenzen von bestimmten Editionen von SQL Server

Gilt für:SQL Server

In diesem Artikel wird erläutert, wie Sie Kapazitätsgrenzen für Editionen von SQL Server berechnen und wie diese sich in physischen und virtuellen Umgebungen mit simultanen Hyperthread-Prozessoren unterscheiden. Auf Intel CPUs wird SMT als Hyperthreading bezeichnet.

Übersicht

Diagramm: Zuordnungen zu Rechenkapazitätsgrenzen.

In dieser Tabelle werden die Schreibweisen im vorigen Diagramm beschrieben:

Wert BESCHREIBUNG
0..1 Null oder Eins
1 Genau eins
1..* Ein oder mehr
0..* 0 oder mehr
1..2 Eine oder zwei

Weitere Details:

  • Ein virtueller Computer (VM) weist einen oder mehrere virtuelle Prozessoren auf.
  • Ein oder mehrere virtuelle Prozessoren werden genau einem virtuellem Computer zugeordnet.
  • 0 (null) oder ein virtueller Prozessor wird null oder mehreren logischen Prozessoren zugeordnet. Die Zuordnung virtueller Prozessoren zu logischen Prozessoren ist wie folgt:
    • 1:0: stellt einen ungebundenen logischen, von den Gastbetriebssystemen nicht verwendeten Prozessor dar.
    • 1:viele: stellt einen Overcommit dar.
    • 0:viele: stellt die Abwesenheit des virtuellen Computers auf dem Hostsystem dar. Also den Fall, dass virtuelle Computer keine logischen Prozessoren verwenden.
  • Ein Socket wird null oder mehr Kernen zugeordnet. Die Zuordnung Socket zu Kern kann wie folgt sein:
    • 1:0: stellt einen leeren Socket dar. Es ist kein Chip installiert.
    • 1:1: stellt einen im Socket installierten Einzelkern-Chip dar. Diese Zuordnung ist heutzutage selten.
    • 1:viele: stellt einen im Socket installierten Mehrkern-Chip dar. Typische Werte sind 2, 4 und 8.
  • Ein Kern wird einem oder zwei logischen Prozessoren zugeordnet. Die Zuordnung von Kernen zu logischen Prozessoren ist wie folgt:
    • 1:1: SMT ist deaktiviert.
    • 1:2: SMT ist aktiviert.

Die folgenden Definitionen gelten für die in diesem Artikel verwendeten Begriffe:

  • Ein Thread oder logischer Prozessor ist aus der Sicht von SQL Server bzw. aus der Sicht des Betriebssystems, einer Anwendung oder eines Treibers eine logische Computer-Engine.

  • Ein Kern ist eine Prozessoreinheit. Sie kann aus einem oder mehreren logischen Prozessoren bestehen.

  • Ein physischer Prozessor kann aus einem oder mehreren Kernen bestehen. Ein physischer Prozessor ist das Gleiche wie ein Prozessorpaket oder ein Socket.

Breaking Change beim kumulativen Update 11 von SQL Server 2022

SQL Server begrenzt die Anzahl der logischen Prozessoren pro NUMA-Knoten auf 64. Auf Servern mit mehr als 64 logischen Prozessoren pro NUMA-Knoten können Sie eine BIOS-/Firmwarekonfiguration verwenden, um die Anzahl von NUMA-Knoten pro physischem Socket zu ändern, die dem Betriebssystem angezeigt wird, um sie auf maximal 64 logische Prozessoren zu begrenzen.

Sie können auch die Deaktivierung von SMT in Betracht ziehen. Auf Intel CPUs wird SMT als Hyperthreading bezeichnet.

Hinweise

Systeme mit mehr als einem physischen Prozessor oder Systeme mit physischen Prozessoren, die mehrere Kerne und/oder SMT haben, ermöglichen dem Betriebssystem, mehrere Tasks gleichzeitig auszuführen. Jeder Thread der Ausführung wird als logischer Prozessor angezeigt. Wenn Ihr Computer z. B. zwei Quad-Core-Prozessoren mit aktiviertem SMT und zwei Threads pro Kern aufweist, verfügen Sie über 16 logische Prozessoren: 2 Prozessoren × 4 Kerne pro Prozessor × 2 Threads pro Kern. Beachten Sie Folgendes:

  • Die Rechenkapazität eines logischen Prozessors von einem einzelnen Thread eines SMT-Kerns ist geringer als die Rechenkapazität eines logischen Prozessors von diesem gleichen Kern mit deaktiviertem SMT.

  • Die Rechenkapazität der zwei logischen Prozessoren im SMT-Kern ist größer als die Rechenkapazität des gleichen Kerns mit deaktiviertem SMT.

Jede Edition von SQL Server hat zwei Rechenkapazitätsgrenzen:

  • Die maximale Anzahl von Sockets (oder physischen Prozessoren oder Prozessorpaketen)

  • Die maximale Anzahl von Kernen, die vom Betriebssystem gemeldet wird

Diese Begrenzungen gelten für eine einzelne Instanz von SQL Server. Sie stellen die maximale Rechenkapazität dar, die eine einzelne Instanz verwendet. Sie schränken den Server nicht ein, auf dem die Instanz möglicherweise bereitgestellt wird. Vielmehr stellt die Bereitstellung mehrerer SQL Server-Instanzen auf demselben physischen Server eine effiziente Möglichkeit dar, die Rechenkapazität eines physischen Servers mit mehr Sockets und/oder Kernen zu nutzen, als es die Kapazitätsgrenzen zulassen.

Die folgende Tabelle gibt die Rechenkapazitätsgrenzen für eine einzelne Instanz jeder Edition von SQL Serveran:

SQL Server -Edition Maximale Rechenkapazität für eine einzelne Instanz (SQL Server-Datenbank-Engine) Maximale Rechenkapazität für eine einzelne Instanz (AS, RS)
Enterprise Edition: Kernbasierte Lizenzierung 1 Maximum des Betriebssystems Maximum des Betriebssystems
Entwickler Maximum des Betriebssystems Maximum des Betriebssystems
Standard Beschränkt auf weniger als 4 Sockets oder 24 Kerne Beschränkt auf weniger als 4 Sockets oder 24 Kerne
Express Beschränkt auf weniger als 1 Socket oder 4 Kerne Beschränkt auf weniger als 1 Socket oder 4 Kerne

1 Die Enterprise Edition mit einer Lizenzierung in Form von Serverlizenz + Clientzugriffslizenz (CAL) ist auf maximal 20 Kerne pro SQL Server-Instanz beschränkt. (Diese Lizenzierung ist für neue Verträge nicht verfügbar.) Für das auf Prozessorkernen basierende Serverlizenzierungsmodell gelten keine Beschränkungen.

In einer virtualisierten Umgebung beruht die Beschränkung der Rechenkapazität auf der Anzahl der logischen Prozessoren, nicht der Kerne. Dies hat den Grund, dass die Prozessorarchitektur für die Gastanwendungen nicht sichtbar ist.

Ein Server mit vier Sockets beispielsweise, bestückt mit Quad-Core-Prozessoren und der Fähigkeit, zwei SMT-Threads pro Kern zu aktivieren, enthält mit aktiviertem SMT 32 logische Prozessoren. Er enthält jedoch mit deaktiviertem SMT nur 16 logische Prozessoren. Diese logischen Prozessoren können virtuellen Computern auf dem Server zugeordnet werden. Die Rechenlast des virtuellen Computers auf diesem logischen Prozessor wird einem Ausführungs-Thread auf dem physischen Prozessor im Hostserver zugeordnet.

Es kann daher sinnvoll sein, SMT zu deaktivieren, wenn die Leistung der einzelnen virtuellen Prozessoren wichtig ist. Sie können das SMT anhand einer BIOS-Einstellung für den Prozessor während des BIOS-Setups deaktivieren, aber es ist in der Regel ein Vorgang im Serverbereich, der sich auf alle Arbeitsauslastungen auswirkt, die auf dem Server ausgeführt werden. Sie können in Betracht ziehen, Workloads, die in virtuellen Umgebungen ausgeführt werden, von solchen zu trennen, die in der Umgebung eines physischen Betriebssystemus von der Leistungssteigerung durch SMT profitieren würden.

Hilfe erhalten

Zur SQL-Dokumentation beitragen

Wussten Sie schon, dass Sie SQL-Inhalte selbst bearbeiten könnten? Hierdurch helfen Sie nicht nur mit, unsere Dokumentation zu verbessern, sondern Sie werden auch als Mitwirkender an der Seite aufgeführt.

Weitere Informationen finden Sie unter Mitwirken an der SQL Server-Dokumentation.