Pufferpoolerweiterung
Gilt für:SQL Server
Seit SQL Server 2014 (12.x)ermöglicht die Pufferpoolerweiterung die nahtlose Integration einer NVRAM (Non-Volatile Random Access Memory)-Erweiterung, d. h. Solid State Drive, in den Datenbank-Engine -Pufferpool, um den E/A-Durchsatz deutlich zu verbessern. Die Pufferpoolerweiterung ist in jeder SQL Server-Edition nicht verfügbar. Weitere Informationen finden Sie unter Von den SQL Server 2016-Editionen unterstützte Funktionen.
Vorteile der Pufferpoolerweiterung
Der Hauptzweck einer SQL Server -Datenbank ist das Speichern und Abrufen von Daten. Daher stellt eine hohe Ein-/Ausgabe auf dem Datenträger ein Hauptmerkmal der Datenbank-Engine dar. Datenträger-E/A-Vorgänge beanspruchen ggf. viele Ressourcen und benötigen relativ viel Zeit für die Ausführung. Daher ist SQL Server so konzipiert, dass E/A-Vorgänge möglichst effizient gestaltet werden. Der Pufferpool ist eine primäre Speicherbelegungsquelle von SQL Server. Die Pufferverwaltung ist eine zentrale Komponente zum Erreichen dieser Effizienz. Die Pufferverwaltungskomponente weist zwei Mechanismen auf: den Puffer-Manager, mit dem auf Datenbankseiten zugegriffen wird und mit dem sie aktualisiert werden, und den Pufferpool, mit dem Datenbankdatei-E/A-Vorgänge reduziert werden.
Daten- und Indexseiten werden vom Datenträger in den Pufferpool gelesen und geänderte Seiten (auch bekannt als modifizierte Seiten) werden zurück auf den Datenträger geschrieben. Ungenügender Arbeitsspeicher auf den Server- und Datenbankprüfpunkten bewirkt heiße (aktive) modifizierte Seiten im Puffercache, die aus dem Cache entfernt und auf mechanische Datenträger geschrieben und dann wieder in den Cache gelesen werden. Diese E/A-Vorgänge sind in der Regel kleine zufällige Lesevorgänge und Schreibvorgänge in der Reihenfolge von 4 KB bis 16 KB Daten. Kleine zufällige E/A-Muster verursachen häufige Suchen, die um den mechanischen Datenträgerarm konkurrieren, die E/A-Latenzzeit erhöhen und den aggregierten E/A-Durchsatz des Systems verringern.
Der normale Ansatz zum Beheben dieser E/A-Engpässe besteht darin, mehr DRAM hinzuzufügen oder leistungsstarke SAS-Spindeln hinzuzufügen. Während diese Optionen hilfreich sind, haben sie erhebliche Nachteile: DRAM ist teurer als Datenspeicherlaufwerke, und das Hinzufügen von Spindeln erhöht die Investitionsausgaben bei der Hardwaregewinnung und erhöht die Betriebskosten durch einen erhöhten Stromverbrauch und erhöhte Wahrscheinlichkeit eines Komponentenausfalls.
Die Pufferpoolerweiterungsfunktion erweitert den Pufferpoolcache um nicht flüchtigen Speicher (üblicherweise SSD). Aufgrund der Erweiterung kann der Pufferpool ein größeres Datenbankworkingset aufnehmen, das die Auslagerung von E/A-Vorgängen zwischen RAM und SSDs erzwingt. Dies verlagert effektiv kleine zufällige E/A-Vorgänge von den mechanischen Datenträgern auf SSDs. Aufgrund der niedrigeren Latenzzeit und besser verteilten zufälligen E/A-Zugriffen von SSDs verbessert die Pufferpoolerweiterung erheblich den E/A-Durchsatz.
Die folgende Liste beschreibt die Vorteile der Pufferpoolerweiterungsfunktion.
Verbesserter Durchsatz bei zufällig verteilten E/A-Zugriffen
Reduzierte E/A-Latenzzeit
Verbesserter Transaktionsdurchsatz
Verbesserte Leseleistung mit einem größeren hybriden Pufferpool
Eine Cachingarchitektur, die aktuelle und zukünftige kostengünstige Speicherlaufwerke nutzen kann
Konzepte
Die folgenden Begriffe sind auf die Pufferpoolerweiterungsfunktion anwendbar.
Begriff | BESCHREIBUNG |
---|---|
Solid-State-Laufwerk (SSD) | Solid State Drives speichern Daten im Arbeitsspeicher (RAM) in einer persistenten Weise. Weitere Informationen finden Sie unter der Wikipedia-Definition. |
Puffer | In SQL Server ist ein Puffer eine 8-KB-Seite im Arbeitsspeicher, die gleiche Größe wie eine Daten- oder Indexseite. Der Puffercache ist ebenfalls in Seiten von je 8 KB unterteilt. Eine Seite verbleibt im Puffercache, bis der Pufferbereich vom Puffer-Manager zum Laden weiterer Daten benötigt wird. Daten werden nur dann auf den Datenträger zurückgeschrieben, wenn sie geändert werden. Diese geänderten Seiten im Arbeitsspeicher werden als modifizierte Seiten bezeichnet. Eine Seite ist sauber, wenn sie dem Datenbankimage auf dem Datenträger entspricht. Daten im Puffercache können mehrfach geändert werden, bevor sie zurück auf den Datenträger geschrieben werden. |
Pufferpool | Auch als Puffercache bezeichnet. Der Pufferpool ist eine globale Ressource, die von allen Datenbanken für ihre zwischengespeicherten Datenseiten verwendet wird. Die maximale und minimale Größe des Pufferpoolcaches wird beim Start oder beim dynamischen Neukonfigurieren der SQL Server-Instanz mit sp_configurebestimmt. Diese Größe bestimmt die maximale Anzahl der Seiten, die jederzeit im Pufferpool in der aktuellen Instanz zwischengespeichert werden können. Der maximale Arbeitsspeicher, der von der Pufferpoolerweiterung zugesichert werden kann, kann durch die anderen Anwendungen begrenzt werden, die auf dem Computer ausgeführt werden, falls diese Anwendungen einen erheblichen Arbeitsspeicherdruck erzeugen. |
Prüfpunkt | Ein Prüfpunkt erstellt einen bekannten fehlerfreien Punkt, von dem aus das Datenbank-Engine Änderungen übernehmen kann, die im Transaktionsprotokoll während der Wiederherstellung nach einem unerwarteten Herunterfahren oder einem Absturz enthalten sind. Ein Prüfpunkt schreibt die modifizierten Seiten und Transaktionsprotokollinformationen vom Arbeitsspeicher auf den Datenträger und erfasst auch Informationen zum Transaktionsprotokoll. Weitere Informationen finden Sie unter Datenbankprüfpunkte (SQL Server). |
Details
SSD-Speicher wird als Erweiterung des Arbeitsspeichersubsystems statt des Festplattenspeichersubsystems verwendet. Somit ermöglicht die Pufferpoolerweiterungsdatei dem Pufferpool-Manager, DRAM und NAND-Flasharbeitsspeicher zu verwenden, um einen wesentlich größeren Pufferpool von "lauwarmen" Seiten im nicht flüchtigen Speicher beizubehalten, der durch SSDs unterstützt wird. Hierdurch wird eine mehrstufige Zwischenspeicherhierarchie mit Ebene 1 (L1) als DRAM und Ebene 2 (L2) als Pufferpoolerweiterungsdatei auf SSD erstellt. Nur nicht modifizierte Seiten werden in den L2-Cache geschrieben, um mehr Datensicherheit zu gewährleisten. Der Puffer-Manager ist für die Verschiebung der nicht modifizierten Seiten zwischen dem L1- und L2-Cache zuständig.
Die folgende Abbildung zeigt eine allgemeine Architekturübersicht des Pufferpools im Vergleich zu anderen SQL Server -Komponenten.
Wenn sie aktiviert ist, gibt die Pufferpoolerweiterung die Größe und den Dateipfad der Pufferpoolzwischenspeicherdatei auf dem SSD an. Diese Datei ist ein zusammenhängender Speicherbereich auf dem SSD und wird beim Starten der Instanz von SQL Serverstatisch konfiguriert. Änderungen an den Dateikonfigurationsparametern können nur ausgeführt werden, wenn die Pufferpoolerweiterungsfunktion deaktiviert ist. Wenn die Pufferpoolerweiterung deaktiviert wird, werden alle zugehörigen Konfigurationseinstellungen aus der Registrierung entfernt. Die Pufferpoolerweiterungsdatei wird nach dem Herunterfahren der SQL Server-Instanz gelöscht.
Kapazitätseinschränkungen
SQL Server Enterprise Edition ermöglicht eine maximale Größe der Pufferpoolerweiterung von 32 mal dem Wert von max server memory
.
SQL Server Standard Edition ermöglicht eine maximale Größe der Pufferpoolerweiterung von vier mal dem Wert von max server memory
.
Bewährte Methoden
Es wird empfohlen, nach den folgenden bewährten Methoden vorzugehen.
Nachdem Sie die Pufferpoolerweiterung zum ersten Mal aktiviert haben, sollten Sie die SQL Server-Instanz neu starten, um die maximalen Leistungsvorteile zu erzielen.
Legen Sie die Pufferpoolerweiterung so fest, dass das Verhältnis zwischen der Größe des physischen Speichers (
max server memory
) und der Größe der Pufferpoolerweiterung von 1:16 oder weniger liegt. Ein niedrigeres Verhältnis im Bereich von 1:4 bis 1:8 kann optimal sein. Informationen zum Festlegen der Optionmax server memory
finden Sie unter Serverspeicherkonfigurationsoptionen.Testen Sie die Pufferpoolerweiterung gründlich, bevor Sie sie in einer Produktionsumgebung implementieren. Vermeiden Sie, sobald in der Produktion, Konfigurationsänderungen an der Datei vorzunehmen und die Funktion zu deaktivieren. Diese Aktivitäten wirken sich möglicherweise negativ auf die Serverleistung aus, da der Pufferpool beim Deaktivieren des Features erheblich verkleinert wird. Wenn sie deaktiviert ist, wird der zum Unterstützen des Features verwendete Arbeitsspeicher erst wieder beansprucht, wenn die Instanz von SQL Server neu gestartet wird. Wenn das Feature jedoch erneut aktiviert ist, wird der Speicher wiederverwendet, ohne die Instanz neu zu starten.
Zurückgeben von Informationen zur Pufferpoolerweiterung
Sie können die folgenden dynamischen Verwaltungssichten verwenden, um die Konfiguration der Pufferpoolerweiterung anzuzeigen und Informationen über die Datenseiten in der Erweiterung zurückzugeben.
Im Puffer-Manager-Objekt von SQL Server sind Leistungsindikatoren verfügbar, um die Datenseiten in der Pufferpoolerweiterungsdatei nachzuverfolgen. Weitere Informationen finden Sie unter Leistungsindikatoren für die Pufferpoolerweiterung.
Die folgenden XEvents sind verfügbar.
XEvent | BESCHREIBUNG | Parameter |
---|---|---|
sqlserver. buffer_pool_extension_pages_written |
Wird ausgelöst, wenn eine Seite oder eine Gruppe von Seiten aus dem Pufferpool in die Pufferpoolerweiterungsdatei geschrieben werden. | number_page first_page_id first_page_offset initiator_numa_node_id |
sqlserver. buffer_pool_extension_pages_read |
Wird ausgelöst, wenn eine Seite aus der Pufferpoolerweiterungsdatei in den Pufferpool gelesen wird. | number_page first_page_id first_page_offset initiator_numa_node_id |
sqlserver. buffer_pool_extension_pages_evicted |
Wird ausgelöst, wenn eine Seite aus der Pufferpoolerweiterungsdatei entfernt wird. | number_page first_page_id first_page_offset initiator_numa_node_id |
sqlserver. buffer_pool_eviction_thresholds_recalculated |
Wird ausgelöst, wenn der Entfernungsschwellenwert berechnet wird. | warm_threshold cold_threshold pages_bypassed_eviction eviction_bypass_reason eviction_bypass_reason_description |
Verwandte Aufgaben
Taskbeschreibung | Artikel |
---|---|
Aktivieren und Konfigurieren der Pufferpoolerweiterung. | ALTER SERVER CONFIGURATION |
Ändern der Konfiguration der Pufferpoolerweiterung | ALTER SERVER CONFIGURATION |
Anzeigen der Konfiguration der Pufferpoolerweiterung | sys.dm_os_buffer_pool_extension_configuration |
Überwachen der Pufferpoolerweiterung | sys.dm_os_buffer_descriptors SQL Server, Buffer Manager-Objekt |