Die Konfiguration eines optimalen Microsoft SQL Server 2012-Produktionsservers kann eine anspruchsvolle Aufgabe sein, da Variablen wie Speicher, RAM oder Prozessorauswahl selbst erfahrene IT-Administratoren vor Herausforderungen stellen. Zuletzt veröffentlichten wir eine Analyse zur Auswahl des besten Intel Xeon E5-2600 v2 Prozessors für den Betrieb von SQL Server 2012 in nicht virtualisierten Umgebungen. Neben dem Prozessor ist der Arbeitsspeicher (RAM) eine weitere Schlüsselkomponente für die Performance von SQL Server auf physischen Systemen. Für diesen Test verwendeten wir dieselbe Testumgebung wie für die Intel-Prozessorstudie. Diesmal konzentrierten wir uns auf den Einsatz von Micron PC3-12800 RAM in Kombination mit dem leistungsstärksten Prozessor und Speicher, um dessen Auswirkungen auf die Performance zu ermitteln.
Traditionell bietet mehr RAM für SQL Server eine höhere Leistung. Die Nutzung von zusätzlichem RAM verringert den E/A-Fußabdruck auf einem bestimmten Speicherarray und bietet auch einige Vorteile beim Caching. Wenn alles gleich bleibt, schauen wir uns an, wie viel RAM Sie für SQL Server bereitstellen und gleichzeitig ein niedriges Latenzprofil beibehalten können. In diesem Artikel zeigen wir die Leistungsauswirkungen der Zuweisung von 128 GB dediziert für SQL Server, wo wir derzeit Geräte für Unternehmenstests testen, bis hin zu 8 GB.
Testbed
Für diese Analyse untersuchen wir Micron PC3-12800 DDR3-Speicher in einem Supermicro SuperStorage Server 2027R-AR24NV mit Windows Server 2012. Dieser 2U-Server mit zwei Sockeln unterstützt die Intel-Prozessoren der Familien E5-2600 und E5-2600 v2. Der Arbeitsspeicher besteht aus sechzehn 16-GB-Micron-PC3-12800-DIMMs, deren Anzahl für jeden Test unverändert bleibt. Um die vom SQL Server genutzte RAM-Menge zu ändern, passen wir die Zuweisungseinstellung an und begrenzen sie für jeden Testschritt auf einen festgelegten Wert. Als internen Speicher verwenden wir die 2.6 TB große Fusion ioMemory PX600 , die sehr gute Latenzwerte für den SQL Server aufweist (das schnellste Produkt der aktuellen Generation, das unser Labor bisher getestet hat).
Server Configuration
- 2 x Intel Xeon Prozessor E5-2687W v2 – 25 MB Cache, 3.40 GHz, 8 Kerne
- Intel C602 Chipsatz
- Speicher – 256 GB (16 x 16 GB) 1600 MHz Micron DDR3 registrierte RDIMMs (128 GB dediziert für das System, 8–128 GB dediziert für SQL)
- Windows Server Standard 2012
- 3 x Supermicro SAS3 HBAs (LSI SAS 3008 Controller)
- 200 GB Micron P400m Boot-SSD
- 1 x Mellanox ConnectX-3 Dual-Port VPI PCIe 3.0 Adapter (InfiniBand LoadGen Fabric)
- 1 x Emulex OCe11102 Dual-Port 10GbE-Adapter
Speicherkonfiguration
- SanDisk Fusion ioMemory PX600 2.6 TB
- 80 % Überbereitstellung im Hochleistungsmodus
- Volle Leistungsaufnahme aktiviert
- VSL 4.1.1 Firmware/Treiber
Leistung
Jedes festgelegte RAM-Schrittintervall wurde auf dieselbe Weise getestet: mithilfe unseres SQL Server 2012 OLTP-Benchmarks, wobei sich die Datenbank auf der PX600 innerhalb des Einzelknoten-2P-Supermicro-Servers befand. Wie bei den meisten Speichergeräten dieser Klasse legen wir weniger Wert auf die Transaktionsrate pro Sekunde; der Fokus liegt vielmehr auf der Latenzzeit für den Abschluss jeder einzelnen Transaktion.
Wie erwartet führten größere Mengen an RAM, die dem SQL-Server zugewiesen wurden, zu einer höheren Transaktionsleistung. Zwischen 128 GB und 64 GB haben wir keine große Änderung beim TPS festgestellt. Tatsächlich blieb der Rückgang zwischen 96 GB und 64 GB ungefähr innerhalb der gleichen Fehlermarge. Der Unterschied von 16 GB zu 8 GB brachte die größte Änderung mit sich, was uns zeigt, dass 16 GB wahrscheinlich der minimale nutzbare Schwellenwert für diesen speziellen Test und diese Serverkonfiguration sind.
Wenn wir uns auf die Latenz konzentrieren, sehen wir, wie gut der Fusion ioMemory PX600 seine Leistung bei niedriger Latenz beibehält, wobei die Ergebnisse für 128 GB, 96 GB und 64 GB zwischen 2 und 3 ms liegen. Der Rückgang auf 32 GB erhöhte die Latenz um etwa 66 %, aber der nächste Rückgang auf 16 GB war viel dramatischer. Diese Änderung erhöhte die Latenz um 200 %, die sich dann um weitere 153 % erhöhte, als der RAM auf 8 GB verringert wurde.
Obwohl die Auswirkungen auf den Speicher im Rahmen dieses Tests nicht gezeigt wurden, verringerte jede Erhöhung der DRAM-Zuweisung die Belastung des Speichergeräts, auf dem sich die Datenbank befand, erheblich. Kurz gesagt bedeutet mehr Speicher, dass weniger Anfragen den Speicher erreichen und stattdessen im Systemspeicher verbleiben. Während 128 GB RAM eine Hintergrundlast von 50–100 MB/s hatten, stiegen 16 GB auf 800 MB/s (nicht während der Protokollschreibaktivität, die bei jeder DRAM-Konfiguration zu großen Spitzen führen kann). Mit einem kleineren Speichermedium wären diese Ergebnisse sogar noch höher.
Fazit
Bei der Zusammenstellung eines hochleistungsfähigen, nicht virtualisierten SQL Servers gibt es viele Überlegungen. Im ersten Teil haben wir uns mit der CPU und ihren Auswirkungen auf die SQL-Leistung befasst. Hier verwenden wir den leistungsstärksten In-Host-Speicher und die CPUs, um den Arbeitsspeicher auf die Probe zu stellen. In Zusammenarbeit mit Micron führten wir die gleichen Tests durch und reichten von 8 GB bis 128 GB RAM für SQL. Die Ergebnisse sind ziemlich intuitiv, da im Allgemeinen mehr RAM im Hinblick auf die Latenz besser ist. Es gibt jedoch einen Bruchpunkt, an dem die Latenz in dieser Konfiguration einen dramatischen Höhepunkt erreicht. Bei 16 GB steigt die Latenz um das Dreifache im Vergleich zu 3 GB, und bei 32 GB sind die Auswirkungen sogar noch gravierender. Für optimale Leistung sorgen 8 GB RAM für SQL mit CPUs mit höchster Taktrate und erstklassigem PCIe-Speicher für eine Latenz von nur 128 ms.
Auswahl der besten Intel Xeon E5-2600 v2-CPU für SQL Server 2012




Amazon