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

Praktische Prozessorauswahl für SQL Server 2014/2016 OLTP-Workloads

Wahrscheinlich nicht die gesuchte CPU.

Stellen Sie sich vor, Sie haben gerade die Verwaltungsgenehmigung für einen neuen lokalen Datenbankserver erhalten, der eine unternehmenskritische OLTP-Arbeitslast mit SQL Server 2014 Enterprise Edition unter Windows Server 2012 R2 Standard Edition ausführt. Dieser neue Server ersetzt einen älteren Dell PowerEdge R910-Server, auf dem SQL Server 2008 R2 Enterprise Edition auf Windows Server 2008 R2 Enterprise Edition ausgeführt wird. Dieser vorhandene Server verfügt über vier 45-nm-Intel Xeon X7560 Nehalem-EX-Prozessoren (was Ihnen insgesamt 32 „physische Kerne im System“ bietet) und verfügt über 512 GB RAM, was beim Kauf im Jahr 2010 eine Premium-Konfiguration war.

Für dieses Beispiel steht Ihnen ein etwas begrenztes Budget für Hardware- und Softwarelizenzen für das Plattform-Upgrade zur Verfügung. Sie möchten zu SQL Server 2014 Enterprise Edition auf einem neuen Server mit viel besserer Singlethread-CPU-Leistung (da Sie eine OLTP-Workload haben) und höherer Gesamt-CPU-Kapazität wechseln und gleichzeitig Ihre Hardware- und SQL Server-Lizenzkosten minimieren.

Wie würden Sie angesichts dieser Informationen vorgehen, um zu entscheiden, welches Servermodell Sie auswählen und welchen genauen Prozessor Sie auswählen sollten? Würden Sie jemanden in der I.T. Abteilung diese Entscheidungen treffen, oder würden Sie sich in den Bewertungs- und Entscheidungsprozess einbringen? Anstatt "Shon the server guy" entscheiden zu lassen, möchte ich Ihnen eine einfache, praktische Methode zeigen, um dies herauszufinden, indem ich TPC-E-Benchmark-Ergebnisse, etwas einfache Arithmetik und etwas gesunden Menschenverstand verwende.

Der erste Schritt besteht darin, die TPC-E-Benchmark-Ergebnisse online zu überprüfen und nach dem System zu suchen, das Ihrem bestehenden System am nächsten kommt. Wenn Sie Glück haben, finden Sie eine offizielle Benchmark-Einreichung, die genau zu Ihrem System passt. In unserem Fall habe ich eine Einreichung vom 10. April 2010 gefunden, die zufällig genau mit unserem alten System übereinstimmt. Dieses Dell PowerEdge R910-System hatte einen tatsächlichen TPC-E-Durchsatzwert von 1.933,96 mit vier Intel Xeon X7560-Prozessoren mit acht Kernen. Der tatsächliche TPC-E-Durchsatzwert ist ein gutes Maß für die gesamte CPU-Kapazität des Systems und gibt Ihnen einen ungefähren Hinweis darauf, wie viele gleichzeitige Abfragen es verarbeiten kann (vorausgesetzt, Sie haben keine Speicher- oder speicherbezogenen Engpässe).

Der zweite Schritt besteht darin, den tatsächlichen TPC-E-Durchsatzwert für dieses System zu nehmen und ihn durch die Anzahl der physischen Prozessorkerne im System zu dividieren, um eine Vorstellung von der Single-Thread-Prozessorleistung für den jeweiligen Prozessor im Benchmark-System zu erhalten . Für dieses System würden wir einfach 1.933,96 durch 32 physische Kerne dividieren, um eine „Punktzahl pro Kern“ von 60,44 zu erhalten. Der Intel Xeon X7560 hat eine Basistaktrate von 2,26 GHz, mit einer Turbo-Taktrate von 2,66 GHz. Es verfügt über einen gemeinsam genutzten L3-Cache von 24 MB und eine Intel QPI-Geschwindigkeit von 6,4 GT/s. Quick Path Interconnect (QPI) ist eine Punkt-zu-Punkt-Verbindung zwischen der CPU und dem integrierten Speichercontroller, sodass höhere QPI-Geschwindigkeiten einen schnelleren Speicherzugriff bedeuten.

Der dritte Schritt besteht darin, nach TPC-E-Benchmark-Ergebnissen für Systeme und Prozessoren der aktuellen Generation zu suchen und zu versuchen, ein Ergebnis für ein System zu finden, das ungefähr dem Typ des neuen Systems entspricht, das Sie in Betracht ziehen. Leider wird dies manchmal schwierig, da die Serverhersteller nicht so viele neue Systeme wie früher eingereicht haben und weil sie immer Systeme einreichen, die den "Flaggschiff"-Prozessor mit der höchsten Kernanzahl für eine bestimmte Prozessorgeneration und -familie verwenden. Dadurch wird der tatsächliche TPC-E-Durchsatz höher, aber auch die Lizenzierung eines Systems, das diesen Prozessor verwendet, für SQL Server aufgrund der höheren Kernanzahl viel teurer. Ein weiteres Problem bei diesen „Flaggschiff“-Prozessormodellen besteht darin, dass sie normalerweise eine höhere Anzahl physischer Kerne gegen niedrigere Basistaktgeschwindigkeiten eintauschen, sodass Sie am Ende viel höhere Lizenzkosten zahlen und tatsächlich eine geringere Single-Thread-CPU-Leistung erhalten.

Herkömmliche Weisheit wäre, dass Sie einen neuen Vier-Socket-Server als Ersatz für Ihren vorhandenen Vier-Socket-Server wünschen würden. Bei modernen Zwei-Sockel-Servern ist dies je nach Umfang Ihrer Arbeitslast möglicherweise nicht mehr erforderlich. Es gab einen Zeitraum von Anfang 2012 bis Anfang 2014, in dem die neuen Serverprozessoren der Xeon E5-Familie mit zwei Sockeln viel schneller für Single-Thread-Leistung waren als die neuen Serverprozessoren der Xeon E7-Familie mit vier Sockeln. Diese Leistungslücke hat sich mit der Veröffentlichung der Xeon E7 v2 Ivy Bridge-EX-Familie Anfang 2014 ein ganzes Stück geschlossen. Seitdem sind die E5- und E7-Familien noch enger zusammengerückt, da beide die Haswell-Mikroarchitektur verwenden.

Angesichts dieser annähernden CPU-Leistungsparität hängt die Wahl Ihres Servermodells von der Gesamtspeicher-, CPU- und E/A-Kapazität ab. Aktuelle Server mit zwei Sockeln sind praktisch auf 768 GB RAM mit 32 GB DIMMs beschränkt, während aktuelle Server mit vier Sockeln 3 TB RAM mit 32 GB DIMMs haben können. Die meisten Kunden, denen ich begegne, können ihre Arbeitslast bequem mit 768 GB RAM ausführen, aber einige wenige benötigen tatsächlich mehr als das. Sowohl Zwei-Socket- als auch Vier-Socket-Server können Haswell-Prozessoren mit jeweils 18 physischen Kernen verwenden, sodass Sie je nach Socket-Anzahl entweder 36 oder 72 physische Kerne in Ihrem System haben.

Für diese Übung gibt es ein TPC-E-Benchmark-Ergebnis für ein Fujitsu Primergy RX2540 M1-System mit zwei Sockeln und einem tatsächlichen TPC-E-Durchsatzwert von 3.772,08 unter Verwendung von zwei Intel Xeon E5-2699 v3 Haswell-EP-Prozessoren mit 18 Kernen und 512 GB RAM. Der Xeon E5-2699 v3 Prozessor hat eine Basistaktrate von 2,3 GHz, mit einer Turbo-Taktrate von 3,6 GHz. Es verfügt über einen gemeinsam genutzten L3-Cache von 45 MB und eine Intel QPI-Geschwindigkeit von 9,6 GT/s. Für dieses System würden wir die tatsächliche Punktzahl von 3.772,08 durch 36 physische Kerne dividieren, um eine „Punktzahl pro Kern“ von 104,78 zu erhalten.

Dieses neue Zwei-Sockel-System hätte fast die doppelte CPU-Gesamtkapazität des Legacy-Systems, mit etwa dem 1,57-fachen der Single-Thread-Leistung. Im Hinblick auf die CPU-Kapazität und die Single-Thread-Leistung wäre ich ziemlich zuversichtlich, dass dieses neue Zwei-Sockel-System ein guter Ersatz für das Legacy-System wäre. Dieses neue System würde auch über PCIe 3.0-Erweiterungssteckplätze verfügen, sodass es insgesamt mehr E/A-Kapazität als das alte System haben wird. Leider hat es 36 physische Kerne, für die SQL Server 2014 Enterprise Edition-Lizenzen erforderlich sind, die ziemlich teuer sein werden.

Eine bessere Prozessorwahl könnte der Intel Xeon E5-2667 v3 sein, der über acht physische Kerne mit einer Basistaktrate von 3,2 GHz, einer Turbo-Taktrate von 3,6 GHz, einem gemeinsam genutzten L3-Cache von 20 MB und einem Intel mit 9,6 GT/s verfügt QPI-Geschwindigkeit. Mit etwas einfacher Arithmetik können wir die Unterschiede zwischen dem Xeon E5-2699 v3 und dem Xeon E5-2667 v3 ausgleichen (da beide aus derselben Prozessorgeneration und -familie stammen).

Zuerst passe ich den Unterschied in der Anzahl der physischen Kerne an. Wenn Sie 8 durch 18 teilen, ist das Ergebnis 0,44, also multiplizieren Sie 3.772,08 mal 0,44, wir erhalten ein Ergebnis von 1.676,48. Als nächstes müssen wir den Unterschied in der Basistaktgeschwindigkeit zwischen diesen beiden Prozessoren ausgleichen. Der E5-2667 v3 hat eine um 39 % höhere Basistaktfrequenz als der E5-2699 v3-Prozessor, also würden wir 1.676,48 mal 1,39 multiplizieren, um eine endgültige Schätzung zu erhalten TPC-E-Score von 2330,31. Wenn wir diese geschätzte Punktzahl durch 16 physische Kerne teilen, erhalten wir ein „Punktzahl pro Kern“-Ergebnis von 145,64.

Nach dieser Berechnung hätten wir also immer noch mehr Gesamt-CPU-Kapazität als das Legacy-System und eine viel bessere Single-Thread-CPU-Leistung mit dem „frequenzoptimierten“ Xeon E5-2667 v3-Prozessor mit geringerer Kernanzahl im neuen Zwei-Sockel System. Der letzte Bonus dieser Prozessorwahl sind viel niedrigere Lizenzkosten für SQL Server 2014, da wir nur 16 Kernlizenzen statt 36 Kernlizenzen benötigen würden, was einer Einsparung von etwa 136.000,00 USD entspricht.

Hoffentlich ist es ein wenig klarer geworden, wie Sie eine einfache Analyse durchführen können, um den genauen Prozessor zu bestimmen, den Sie für einen neuen Datenbankserver angesichts Ihrer Arbeitslast und Budgetbeschränkungen wählen sollten. Diese Analyse ist etwas komplizierter, wenn Sie Prozessoren verschiedener Generationen und Familien vergleichen müssen, aber es können die gleichen Grundprinzipien verwendet werden. Ich werde in einem zukünftigen Artikel tiefer in dieses Thema eintauchen.