Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Hardware für SQL Server 2016 Standard Edition auswählen und konfigurieren

Seit der Veröffentlichung von SQL Server 2016 Service Pack 1 am 16. November 2016 mit vielen sehr nützlichen Programmierbarkeitsfunktionen, die zuvor nur in der Enterprise Edition verfügbar waren, ist es für viele Unternehmen viel einfacher geworden, sich bewusst für SQL Server 2016 zu entscheiden Standard Edition als in der Vergangenheit.

Wenn Sie dies in Betracht ziehen, müssen Sie sich einiger häufiger Probleme und Fallstricke bewusst sein, auf die Sie stoßen können, wenn Sie SQL Server 2016 Standard Edition auf einem neuen Server mit moderner Hardware installieren und verwenden.

Speicherbegrenzungen und Konfiguration

Das erste Problem sind die instanzbezogenen Lizenzlimits für SQL Server 2016 Standard Edition. Das erste Lizenzlimit ist die Speichermenge, die Sie für den Pufferpool für jede Instanz von SQL Server 2016 Standard Edition verwenden können, die nur 128 GB beträgt, genau wie in SQL Server 2014 Standard Edition. Ich persönlich denke, dass diese Grenze angesichts der Speicherdichte moderner Zwei-Sockel-Server künstlich niedrig ist, aber es ist eine Grenze, mit der wir umgehen müssen.

Aktuelle Zwei-Sockel-Server, die Prozessoren der Intel Xeon E5-2600 v4-Produktfamilie verwenden, können bis zu 12 DIMMs pro Prozessor verwenden, während 32 GB DDR4 ECC-DIMMs die höchste Kapazität sind, die auch pro GB erschwinglich ist. Jeder Server mit dieser Prozessorfamilie verfügt über 4 Speicherkanäle pro Prozessor, wobei jeder Kanal bis zu 3 DIMMs unterstützt. Ein vollständig bestückter Zwei-Sockel-Server mit vierundzwanzig 32-GB-DIMMs hätte 768 GB RAM, was weit mehr ist, als eine einzelne Instanz von SQL Server 2016 Standard Edition verwenden darf.

Da SQL Server 2016 Standard Edition ein so niedriges Arbeitsspeicherlimit pro Instanz hat, sollten Sie bewusst eine geeignete Arbeitsspeicherkonfiguration wählen, die es Ihnen ermöglicht, den gesamten lizenzgebundenen Arbeitsspeicher zu nutzen und gleichzeitig die bestmögliche Arbeitsspeicherleistung zu erzielen. Wenn Sie nur ein DIMM pro Speicherkanal bestücken, erhalten Sie die absolut beste Speicherleistung, die von Ihrem/Ihren Prozessor(en) unterstützt wird.

Die großen Serveranbieter wie Dell bieten detaillierte Anleitungen zu den möglichen Speicherkonfigurationen für ihre Server, abhängig von der Anzahl und dem spezifischen Typ des ausgewählten Prozessors. Für SQL Server 2016 Standard Edition in einem Zwei-Socket-Server mit zwei Prozessoren der Intel Xeon E5-2600 v4-Familie erhalten Sie bei Auswahl von acht 32-GB-DDR4-DIMMs 256 GB RAM, die mit der maximal unterstützten Geschwindigkeit von 2400 MT/s ausgeführt werden.

Auf diese Weise können Sie den maximalen Serverspeicher (für den Pufferpool) auf 131.072 MB (128 GB) festlegen und haben immer noch viel Speicher für das Betriebssystem und für die mögliche Verwendung durch Columnstore-Indizes und In-Memory-OLTP übrig. Sie hätten auch sechzehn leere DIMM-Steckplätze, die für zukünftige RAM-Erweiterungen verwendet werden könnten (die Sie nutzen könnten, wenn Sie ein nachfolgendes Edition-Upgrade auf Enterprise Edition durchführen). Eine weitere Verwendung für einige dieser leeren DIMM-Steckplätze wäre das „Tail of the Log Caching“ auf NVDIMMs (was in SQL Server 2016 Standard Edition mit SP1 unterstützt wird).

Prozessorlizenzbeschränkungen

SQL Server 2016 Standard Edition ist außerdem auf den kleineren Wert von vier Sockeln oder 24 physischen Prozessorkernen beschränkt. Bei aktuellen und kommenden Prozessorfamilien von Intel und AMD mit bis zu 32 physischen Kernen ist es sehr einfach, versehentlich die Prozessorkerngrenze pro Instanz zu überschreiten, mit einer Reihe schwerwiegender Folgen für die Leistung und die Lizenzkosten.

Der erste negative Effekt besteht darin, wie SQL Server 2016 Standard Edition Ihre verfügbaren physischen Kerne mit Lizenzlimit Ihren NUMA-Knoten zuweist. Wenn Sie beispielsweise einen neuen Zwei-Socket-Server mit zwei Intel Xeon E5-2697A v4-Prozessoren mit 16 Kernen hätten, würde SQL Server 2016 Standard Edition standardmäßig sechzehn physische Kerne auf NUMA-Knoten 0 und nur acht Kerne auf NUMA verwenden Knoten 1, bei dem es sich um eine unausgeglichene Konfiguration handelt, die nicht so gut funktioniert, wie sie könnte. Sie können dieses Problem mit einem ALTER SERVER CONFIGURATION-Befehl beheben, wie ich ihn hier beschreibe.

Um das Ganze in dieser Situation noch schlimmer zu machen, würde Microsoft auch erwarten, dass Sie Kernlizenzen für alle 32 physischen Kerne in der Maschine erwerben, obwohl Sie nur 24 physische Kerne pro Instanz verwenden dürfen. Dies würde ungefähr 15.000 $ zusätzliche Lizenzkosten für Kernlizenzen bedeuten, die Sie nicht verwenden könnten, es sei denn, Sie haben sich entschieden, mehrere Instanzen auf demselben Hostcomputer auszuführen. Die zusätzlichen Lizenzkosten würden je nach Konfiguration für einen typischen Zwei-Socket-Server ausreichen.

Ein weiterer häufiger Fallstrick, den Sie bei der Standard Edition vermeiden sollten, ist das Erstellen einer virtuellen Maschine mit mehr als vier Sockets. In diesem Fall verwendet SQL Server Standard Edition aufgrund der Socket-Lizenzbeschränkung nur vier Sockets.

Prozessorauswahl

Die derzeit modernste Intel Xeon-Prozessorfamilie für Server mit zwei Sockeln ist die 14-nm-Produktfamilie Intel Xeon E5-2600 v4 (Broadwell-EP), die im ersten Quartal 2016 veröffentlicht wurde. Intel steht kurz vor der Veröffentlichung der nächsten Generation von 14-nm-Intel Xeon E5-2600 v5 (Skylake-EP), das bereits in der Google Cloud Platform verfügbar ist. Ich vermute, dass diese neuen Prozessoren (die neue Modellserver erfordern) im zweiten Quartal 2017 öffentlich verfügbar sein werden.

Angesichts dieser Beschränkung auf 24 physische Kernlizenzen ist dies äußerst wichtig dass Sie keinen Prozessor auswählen, der mehr als 12 physische Kerne hat (wenn Sie vorhaben, beide Sockets eines Zwei-Socket-Servers zu bestücken). Dies schränkt Ihre Auswahl an Prozessor-SKUs etwas ein, aber es stehen immer noch vier große Auswahlmöglichkeiten zur Verfügung, wie in Tabelle 1 gezeigt.

Modell Kerne gesch. TPC-E-Systembewertung Ergebnis/Physischer Kern Lizenzkosten
Xeon E5-2687W v4 24 3.673,00 153.04 44.592,00 $
Xeon E5-2667 v4 16 2.611,91 163.24 29.728,00 $
Xeon E5-2643 v4 12 2.081,36 173.44 22.296,00 $
Xeon E5-2637 v4 8 1.428,39 178,54 14.864,00 $

Tabelle 1:Vergleichende Zwei-Sockel-Systemprozessormetriken

Tabelle 1 zeigt die gesamten physischen Kerne, den geschätzten TPC-E-Score, den geschätzten TPC-E-Score/physischen Kern und die gesamten Lizenzkosten für SQL Server 2016 Standard Edition für ein Zwei-Socket-System, das mit zwei der ausgewählten Prozessoren bestückt ist. Sie werden vielleicht bemerken, dass ich einen Zwölf-Kern-Prozessor, einen Acht-Kern-Prozessor, einen Sechs-Kern-Prozessor und einen Vier-Kern-Prozessor habe, aber in Tabelle 1 gibt es keinen Zehn-Kern-Prozessor Drei verfügbare Prozessormodelle mit zehn Kernen sind aufgrund ihrer sehr niedrigen Basistaktgeschwindigkeiten allesamt sehr schlechte Wahlen für SQL Server.

Der geschätzte TPC-E-Wert für das gesamte System ist ein Maß für die gesamte CPU-Kapazität des Systems, während der Wert/Kern ein Maß für die Single-Thread-CPU-Leistung dieses bestimmten Prozessors ist.

Zusammenfassung

Wenn Sie die bestmögliche Leistung zu den niedrigsten Hardware- und SQL Server-Lizenzkosten für eine SQL Server 2016 Standard Edition-Instanz wünschen, sollten Sie eine Speicherkonfiguration wählen, die nur ein DIMM pro Speicherkanal verwendet (also insgesamt acht DIMMs in einem System mit zwei Sockeln). mit zwei Prozessoren der Intel Xeon E5-2600 v4-Familie).

Sie sollten sich auch bewusst für einen der vier in Tabelle 1 aufgeführten Prozessoren entscheiden. Aus dieser Perspektive ist jede andere Prozessorwahl ein potenziell teurer Fehler.

Wenn Sie schließlich SQL Server 2016 Standard Edition verwenden, sollten Sie untersuchen und testen, ob Buffer Pool Extension (BPE) die Leistung bei Ihrer Workload verbessern könnte. Abhängig von Ihrer Arbeitslast kann das „Tail of the Log“-Caching auf einem NVDIMM auch sehr vorteilhaft für die Leistung Ihres Transaktionsprotokolls sein.