Eine ziemlich häufig gestellte Frage ist, wie Sie bestimmen können, wie viel physischer Arbeitsspeicher in einem Datenbankserver vorhanden sein sollte, auf dem SQL Server 2012 ausgeführt wird. Eine der ersten Informationen, die Sie benötigen, um dies festzustellen, ist, welche Version und Edition von SQL Server Sie ausführen werden auf Ihrem neuen Server.
Verschiedene Versionen und Editionen von 64-Bit-SQL Server haben unterschiedliche Lizenzbeschränkungen für die Menge an physischem RAM, die sie für unterschiedliche Zwecke verwenden können, wie in Tabelle 1 gezeigt.
Version | Ausgabe | Engine-Limit | SSAS-Limit |
---|---|---|---|
SQL Server 2008 | Standard | Betriebssystemlimit | Betriebssystemlimit |
Unternehmen | Betriebssystemlimit | Betriebssystemlimit | |
SQL Server 2008 R2 | Standard | 64 GB | 64 GB |
Unternehmen | 2 TB | 2 TB | |
Rechenzentrum | Betriebssystemlimit | Betriebssystemlimit | |
SQL Server 2012 | Standard | 64 GB | 64 GB |
Business Intelligence | 64 GB | Betriebssystemlimit | |
Unternehmen | Betriebssystemlimit | Betriebssystemlimit |
Tabelle 1:SQL Server-RAM-Limits nach Version und Edition
Wie Sie aus Tabelle 1 ersehen können, könnte SQL Server 2008 sowohl für die Standard- als auch für die Enterprise-Edition bis zum Limit des Betriebssystems für physischen Arbeitsspeicher verbrauchen. Als Microsoft SQL Server 2008 R2 veröffentlichte, hatten sie (meiner Meinung nach) die schlechte Idee, niedrigere physische RAM-Grenzwerte sowohl für die Standard- als auch für die Enterprise-Edition einzuführen. Sie führten auch eine neue Data Center Edition von SQL Server 2008 R2 ein, die das alte, bekannte Betriebssystemlimit als Lizenzlimit für physischen Arbeitsspeicher hatte.
Speicherbegrenzungen für SQL Server 2012
Als Microsoft SQL Server 2012 veröffentlichte, wurde die Data Center Edition-SKU klugerweise abgeschafft, aber sie behielten die gleiche künstlich niedrige 64-GB-RAM-Grenze für die Standard Edition bei. Ich habe ausführlich darüber geschrieben, warum dies eine schlechte Idee ist, also werde ich diese Argumente hier nicht noch einmal zusammenfassen. Es genügt zu sagen, dass es ein wenig lächerlich ist, DDR3-ECC-RAM im Wert von weniger als 800,00 US-Dollar (64 GB mal 12 US-Dollar/GB) in einem neuen Zwei-Sockel-Server zu verwenden, der möglicherweise etwa 10 bis 15.000 US-Dollar für den Server selbst gekostet hat , plus ca. 29.000 $ für sechzehn SQL Server 2012 Standard Edition Core-Lizenzen, ganz zu schweigen von Ihren Speicherkosten.
Bisher gibt es keinen Hinweis darauf, dass Microsoft die Absicht hat, diese RAM-Grenze für SQL Server 2014 zu ändern, sodass wir uns möglicherweise weiterhin damit befassen müssen. Ein kleiner positiver Aspekt dieses RAM-Limits ist, dass es pro SQL Server-Instanz gilt, nicht pro Server. Das bedeutet, dass Sie mit ein wenig Überlegung und Planung entscheiden könnten, zwei oder drei Instanzen von SQL Server 2012 Standard Edition auf demselben physischen Computer zu installieren, um alle Arbeitsspeicher-, Prozessor- und Speicherressourcen des Computers zu nutzen, wenn Sie dazu bereit sind um die zusätzliche Ressourcennutzung und den Verwaltungsaufwand von benannten Instanzen zu bewältigen. Dadurch können Sie im Vergleich zu zwei oder drei separaten Servern eine erhebliche Menge an Hardware und Lizenzkosten für SQL Server 2012 einsparen.
Wenn Sie sich entscheiden, nur bei einer einzelnen Standardinstanz von SQL Server 2012 Standard Edition zu bleiben (was ich bevorzuge, wenn ich auf die Standard Edition beschränkt bin), sollten Sie nur 64 GB RAM für den Datenbankserver erhalten? Ich denke, die Antwort ist ein klares Nein!
Speicherkonfigurationsbeispiel für SQL Server 2012 Standard Edition
Seit der Serverklasse ist DDR3-ECC-RAM so erschwinglich; Ich denke, eine vernünftige Mindestmenge an RAM für einen neuen Server mit zwei Sockeln liegt näher bei 96 GB RAM. Auf diese Weise können Sie die Einstellung für den maximalen Serverspeicher auf Instanzebene auf 65536 MB festlegen, was genau 64 GB RAM entspricht, während viel überschüssiger RAM für das Betriebssystem und alle anderen Anwendungen, die möglicherweise auf Ihrem Datenbankserver ausgeführt werden, übrig bleibt.
Die großen Serveranbieter verfügen über Dokumentations- und Online-Speicherkonfigurationstools, mit denen Sie sicherstellen können, dass Sie die bestmögliche Speicherkonfiguration für eine gewünschte Menge an physischem Speicher erhalten. Sie können auch ein Tool wie CPU-Z verwenden, um die Geschwindigkeit Ihres Systemspeichers zu überprüfen, um sicherzustellen, dass er mit der erwarteten Geschwindigkeit läuft.
Dell hat hier beispielsweise ein Online-Konfigurationstool. Mit diesem Tool können Sie das gewünschte Dell Servermodell auswählen, einschließlich der Prozessorfamilie, die Sie verwenden werden (wenn Sie die Wahl haben), und der Anzahl der physischen Prozessoren, die tatsächlich im Server vorhanden sein werden. Dann geben Sie ein, wie viel physisches RAM Sie im Server haben möchten, und wählen Sie die gewünschten Optionen für die Speicherzuverlässigkeit (z. B. Speicherspiegelung, Rangsparing usw.) Maximale Leistung und ausgewogene Konfiguration. Diese Konfigurationen zeigen den Typ, die Anzahl und die Größe der Speichermodule, die Sie verwenden sollten, und welche Speicherkanäle und Steckplätze Sie bestücken sollten, um die gewählte Konfigurationsoption zu erfüllen.
Wenn Sie sich für einen Dell PowerEdge R720 Server mit zwei Sockeln mit zwei der neuen 22-nm-Prozessoren Intel Xeon E5-2600 v2 (Ivy Bridge-EP) entscheiden und 96 GB RAM ohne weitere Speicherzuverlässigkeitsoptionen auswählen, erhalten Sie drei empfohlene Speicher Einstellmöglichkeiten. Die Option Maximale Leistung schlägt zwölf 8 GB 1866 MHz 1R x4 RDIMMs vor, wobei Steckplatz 0 auf den Kanälen 1-4 bestückt ist und Steckplatz 1 auf den Kanälen 1-2 bestückt für jeden Prozessor. Dadurch erhalten Sie eine Systemspeichergeschwindigkeit von 1866 MHz, was das Maximum ist, das von der neuen Intel Xeon E5-2600 v2-Prozessorserie unterstützt wird.
Übrigens, wenn Sie SQL Server 2012 Standard Edition verwenden, ist der genaue Prozessor, den Sie in einem Dell R720 wollen, der Intel Xeon E5-2667 v2, der über acht physische Kerne mit einer Basistaktfrequenz von 3,3 GHz verfügt. Ein Modell mit höherer Kernanzahl würde die Beschränkung auf 16 physische Kernlizenzen für SQL Server 2012 Standard Edition überschreiten.
Die Konfigurationsoption Ausgewogen schlägt zwölf 8 GB 1600 MHz 1R x4 RDIMMs vor, wobei Steckplatz 0 auf den Kanälen 1-4 bestückt ist und Steckplatz 1 auf den Kanälen 1-2 bestückt für jeden Prozessor. Dadurch erhalten Sie eine Systemspeichergeschwindigkeit von 1600 MHz, die etwas weniger Strom verbraucht als die Option Maximale Leistung.
Die nominale Konfigurationsoption schlägt vierundzwanzig 4 GB 1333 MHz 1R x8 RDIMMs vor, wobei alle Steckplätze auf allen Kanälen für jeden Prozessor bestückt sind. Dies gibt Ihnen eine Systemspeichergeschwindigkeit von 1333 MHz, wobei alle Ihre Steckplätze mit recht kleinen 4-GB-RDIMMs bestückt sind. Dies ist eine suboptimale Wahl, die darauf ausgelegt ist, etwas Geld bei den Speicherkosten zu sparen, indem DIMMs mit geringerer Kapazität und geringerer Geschwindigkeit verwendet werden. Leider gibt es hier kaum wirkliche Geldeinsparungen auf Kosten des Verzichts auf eine anständige Menge an Speicherleistung und keine leeren Speichersteckplätze.
Mit den Prozessoren der Serien Intel Xeon E5-2600 und E5-2600 v2 erhalten Sie die höchstmögliche Speicherbandbreite, wenn Sie nur einen oder zwei Steckplätze pro Speicherkanal bestücken. Das Bestücken des dritten Speichersteckplatzes führt zu einer Verringerung der Systemspeichergeschwindigkeit. Die höchste Speichermenge, die Sie bei maximaler Systemspeichergeschwindigkeit mit wirtschaftlichen 16-GB-RDIMMs verwenden können, beträgt 256 GB, was sechzehn 16-GB-RDIMMs wären, die alle Steckplätze auf den Kanälen 1 und 2 bestücken. Es gibt keinen Vorteil für die Systemspeichergeschwindigkeit, wenn weniger als 256 GB vorhanden sind RAM in einem Zwei-Sockel-Server mit zwei Prozessoren der Serie Xeon E5-2600 oder E5-2600 v2.
Obwohl es besser ist zu versuchen, eine Speicherkonfiguration zu finden, die die höchstmögliche Systemspeichergeschwindigkeit für eine bestimmte Menge an RAM liefert, ist meiner Erfahrung nach (und in den meisten tatsächlichen Anwendungsbenchmarks, die ich gesehen habe) der Leistungsunterschied in der realen Welt zwischen verschiedenen Systemspeichergeschwindigkeiten ist viel kleiner als Sie vielleicht erwarten, ziemlich oft im Bereich von 5-10% oder weniger. Für die Verwendung von SQL Server Enterprise Edition hätte ich lieber genug RAM, um meine gesamte Arbeitslast im Pufferpool unterzubringen, anstatt eine geringere RAM-Menge auszuwählen, um die höchstmögliche Arbeitsspeichergeschwindigkeit auf Kosten eines höheren Abrufs von Daten aus dem Speichersubsystem zu erhalten oft. Selbst „langsames“ RAM hat eine um Größenordnungen geringere Latenz als jede Art von Speichersubsystem, einschließlich Flash-basierter Speicherung.
Wenn meine Arbeitslast nicht in 256 GB RAM passen würde, würde ich lieber mehr RAM hinzufügen und die Geschwindigkeit des Systemspeichers beeinträchtigen, anstatt häufiger auf das viel langsamere Speichersubsystem zugreifen zu müssen. Um es noch einmal zusammenzufassen:Ich denke, der Speicher-Sweetspot für SQL Server 2012 Standard Edition für diesen Servertyp beträgt 96 GB und steigt auf 256 GB für SQL Server 2012 Enterprise Edition (es sei denn, Ihre Arbeitslast ist größer als 256 GB).