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

Verwenden von Intel Optane Storage für SQL Server

Grundlagen von Intel Optane SSD DC P4800X

Die Intel Optane SSD DC P4800X-Serie wurde im ersten Quartal 2017 eingeführt, zunächst mit einer Kapazität von 375 GB und später mit einer Kapazität von 750 GB, die später im Jahr 2017 veröffentlicht wird. Intel hat kürzlich auch eine 1,5-TB-Version dieses Laufwerks herausgebracht, die immer noch schwer zu bekommen ist den Einzelhandelskanal. Alle diese Laufwerke verwenden eine PCIe NVMe 3.0 x4-Schnittstelle und sind in zwei verschiedenen Formfaktoren erhältlich, wobei der erste eine Add-In-Karte (AIC) mit halber Höhe und halber Länge (HHHL) ist, die in einen PCIe-Erweiterungssteckplatz passt, und der zweite ist ein U.2 15-mm-Formfaktor für 2,5-Zoll-Laufwerke, die über PCIe 3.0 verbunden werden.

Die 3D-XPoint-Speichertechnologie von Intel unterscheidet sich grundlegend von herkömmlichem NAND-Flash. Die hohe Leistung der SSD DC P4800X bei geringer Warteschlangentiefe macht es zu einem viel einfacheren Laufwerk, eine sehr hohe reale Leistung zu erzielen, insbesondere für die Verwendung von SQL Server. Intel Optane SSDs haben im Vergleich zu den schnellsten PCIe NVMe NAND-basierten SSDs eine etwa 10-mal niedrigere Latenz und einen 5-8-mal besseren Durchsatz bei niedrigen Warteschlangentiefen. Sie haben auch eine höhere Schreiblebensdauer als „schreibintensive“ Enterprise-NAND-Flash-Speicher, und ihre Leistung verschlechtert sich nicht, da sie fast voll sind. Sie haben konsistente Lesereaktionszeiten bei sehr hoher Schreiblast, und im Gegensatz zu herkömmlichen NAND-Flash-Laufwerken gibt es bei Laufwerken mit kleinerer Kapazität im Vergleich zu Laufwerken mit größerer Kapazität aus derselben Produktlinie keinen Leistungsverlust. Für Workloads mit geringer Latenz gibt es derzeit nichts, was an die Intel Optane SSD DC P4800X heranreicht.

Intel Optane SSD DC P4800X Spezifikationen

Intel bewertet die Optane SSD der DC P4800X-Serie mit 2500 MB/s für sequentielles Lesen, 2200 MB/s für sequentielles Schreiben und 550.000 IOPS sowohl für Lese- als auch für Schreibvorgänge. Ihre Nennlatenz beträgt 10 µs (Mikrosekunden) sowohl für Lese- als auch für Schreibvorgänge. Zum Vergleich:Intel bewertet die 3D-NAND, Triple-Level Cell (TLC) SSD der DC P4600-Serie der aktuellen Generation mit 3200 MB/s für sequentielles Lesen, 1575 MB/s für sequentielles Schreiben und 610.000 IOPS für Lesevorgänge und 196.650 IOPS für schreibt. Ihre Nennlatenz beträgt 85 µs für Lesevorgänge und 15 µs für Schreibvorgänge.

Der aktuelle Preis beträgt etwa 1200,00 $ für die Größe von 375 GB und etwa 2500,00 $ für die Größe von 750 GB. Die Größe von 1,5 TB ist im Einzelhandel immer noch schwer zu bekommen, aber der Preis pro GB sollte ungefähr derselbe sein wie für die Laufwerke mit geringerer Kapazität. In den meisten Fällen sollten Sie sich zwei identische Laufwerke besorgen und dann ein Software-RAID-1-Array mit Windows Storage Spaces erstellen, um Redundanz ohne Leistungsverlust zu erhalten.

Sie sollten sicherstellen, dass Sie die Intel Datacenter NVMe Microsoft Windows-Treiber für Intel SSDs herunterladen und installieren, anstatt den generischen Microsoft NVMe-Treiber zu verwenden. Sie sollten auch das Intel SSD Firmware Update Tool herunterladen und installieren, um sicherzustellen, dass auf jedem Optane-Laufwerk die neueste Firmware installiert ist.

Primäre SQL Server-Nutzungsszenarien

Aufgrund dieser Leistungsmerkmale eignen sich diese Intel Optane-Karten hervorragend für viele intensive tempdb-Workloads, insbesondere schwere OLTP-Workloads und Situationen, in denen Sie Read-Committed Snapshot Isolation (RCSI) für Ihre Benutzerdatenbanken verwenden (was die resultierende Versionsspeicher-Workload erhöht). tempdb).

Ich habe großartige Ergebnisse mit diesen Intel Optane SSD DC P4800X-Laufwerken für SQL Server-Instanzen mit extrem anspruchsvollen tempdb-Workloads erzielt. Mehrere aktuelle Kunden haben ihre tempdb-Datenbankdateien von einem anderen Speichertyp auf ein logisches Laufwerk verschoben, das von einigen Intel Optane SSD DC P4800X PCIe NVMe-Speicherkarten (in einem Software-RAID-1-Array) unterstützt wurde. Ein klassischer Anwendungsfall ist das Verschieben von tempdb vom gemeinsam genutzten Speicher auf einem SAN mit einer herkömmlichen Failover-Clusterinstanz zum lokalen Speicher auf jedem Knoten im Cluster, was Sie mit SQL Server 2012 und höher tun können. Ein weiterer Anwendungsfall besteht darin, Ihre tempdb-Dateien einfach von ihrem aktuellen Speicherort auf das neue logische Laufwerk zu verschieben, das Ihrem RAID-1-Optane-Array auf einer eigenständigen Serverinstanz zugeordnet ist, unabhängig davon, welche Version von SQL Server Sie verwenden.

Diese Optane-Laufwerke sind relativ kostengünstig und bieten die schnellste derzeit verfügbare Art von herkömmlichem Blockmodusspeicher, abgesehen von keinem. Sie sind für SQL Server transparent und funktionieren in jedem System, das PCIe 3.0 x4-Steckplätze als HHHL-Zusatzkarten oder mit U.2 verbundene Laufwerke unterstützt. Sie funktionieren auch mit Legacy-Versionen von SQL Server (sofern Ihr Betriebssystem und Ihre Hardware dies unterstützen). Es ist ziemlich üblich, eine hohe Schreiblatenz auf Dateiebene bei tempdb-Datendateien aus der DMV sys.dm_io_virtual_file_stats zu sehen, daher ist das einfache Verschieben Ihrer tempdb-Datendateien in den Optane-Speicher eine Möglichkeit, dieses Problem direkt zu beheben, was möglicherweise schneller und viel einfacher ist als herkömmliches Workload-Tuning.

Wenn Sie Probleme mit Zuordnungskonflikten in tempdb sehen (was normalerweise sehr wenig mit der zugrunde liegenden Leistung der Laufwerke zu tun hat, auf denen sich tempdb befindet), sollten Sie den Anweisungen von Pam Lahoud von Microsoft in ihrem Blog-Beitrag TEMPDB – Dateien folgen und Trace-Flags und Updates, oh mein Gott! Ein extrem schneller Speicher für tempdb hilft indirekt bei Problemen mit Zuweisungskonflikten in tempdb, aber es ist sehr wichtig, dass Sie die aktuellen Microsoft-Anleitungen bezüglich tempdb-Konfiguration, Ablaufverfolgungsflags und SQL Server-Patches befolgen, um Probleme mit Zuweisungskonflikten in tempdb direkter anzugehen.

Eine weitere mögliche Verwendung für den Intel Optane-Speicher ist die Speicherung Ihrer Benutzerdatenbank-Transaktionsprotokolldatei(en), insbesondere wenn Sie mehrere Benutzerdatenbanken haben, deren Transaktionsprotokolldatei sich auf demselben logischen Laufwerk befindet, oder wenn Sie hohe WRITELOG-Wartezeiten sehen Ihre Instanz. Es ist eine mögliche Alternative zur Verwendung der verzögerten Haltbarkeitseigenschaft von SQL Server (für die SQL Server 2014 erforderlich ist und das Risiko eines Datenverlusts birgt) oder der Verwendung des dauerhaften Protokollpuffers von SQL Server (für die SQL Server 2016 SP1 und NV-DIMMs zum Hosten der 20 MB „Tail of the Log“-Transaktionsprotokolldatei).

Ich habe auch ein paar Kunden (mit kleineren Datenbanken), die einfach ALLE ihre Benutzerdatenbankdaten und Protokolldateien zusammen mit ihren tempdb-Dateien mit hervorragenden Ergebnissen in den Optane-Speicher verschoben haben.

Ergebnisse des CrystalDiskMark-Tests

Intel stellt eine High-End-Consumer-Version der Optane SSD DC P4800X her, die Intel Optane 900P ist. Sie haben auch einen etwas neueren und schnelleren Intel Optane 905P. Ich habe eine 480-GB-Intel-Optane-900P-PCIe-Karte in meiner Haupt-AMD-Ryzen-Threadripper-2950X-Workstation, zusammen mit einer älteren NAND-basierten 400-GB-Intel-SSD-750-PCIe-Karte. Ein schneller CrystalDiskMark-Test liefert die in den Abbildungen 1 und 2 gezeigten Ergebnisse. Der relevanteste Test ist die 4K-Übertragung mit einem QD von 1 mit 1 Ausführungs-Thread, wie in der unteren Reihe gezeigt.

Abbildung 1:Ergebnisse für Intel Optane 900P mit 480 GB

Abbildung 2:400 GB Intel SSD 750 PCIe NVMe Ergebnisse

Wenn Sie bei Ihrer Arbeitslast eine hohe Speicherlatenz oder zufällige E/A-Engpässe feststellen, können Sie möglicherweise eine sehr spürbare Leistungsverbesserung erzielen, indem Sie einfach die relevanten SQL Server-Dateien von dort, wo sie sich jetzt befinden, in den Intel Optane-Speicher verschieben. Dies ist für relativ wenig Geld möglich und funktioniert mit jeder Version von SQL Server. Dies kann Ihnen helfen, etwas mehr Lebensdauer von einem vorhandenen Legacy-Server zu erhalten, bis Sie in der Lage sind, ein Upgrade durchzuführen.