Freigeben über


Aktivieren des AWE-Arbeitsspeichers für SQL Server

Diese Funktion wird in der nächsten Version von Microsoft SQL Server entfernt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

AWE (Address Windowing Extensions) ermöglicht 32-Bit-Betriebssystemen den Zugriff auf große Mengen an Arbeitsspeicher. AWE wird durch das Betriebssystem verfügbar gemacht und mit geringfügigen Unterschieden in Microsoft Windows 2000 Server und Windows Server 2003 implementiert. AWE wird mithilfe von awe enabled (Option) aktiviert.

Verwenden von durch AWE zugeordneten Arbeitsspeicher unter Windows 2000 Server

Bei Instanzen von Microsoft SQL Server unter Windows 2000 wird Arbeitsspeicher beim Starten von SQL Server gemäß der folgenden Ereignissequenz zugeordnet:

  • Falls weniger physikalischer Arbeitsspeicher verfügbar ist als virtueller Adressraum für den Benutzermodus, kann AWE nicht aktiviert werden. In diesem Fall wird SQL Server im Nicht-AWE-Modus ausgeführt, unabhängig von der Einstellung für die Option awe enabled.

  • Falls mehr physikalischer Arbeitsspeicher verfügbar ist als virtueller Adressraum für den Benutzermodus, kann AWE aktiviert werden.

    • Falls der verfügbare physikalische Arbeitsspeicher größer als der Wert der Option max server memory ist, sperrt die SQL Server-Instanz die in max server memory angegebene Arbeitsspeichermenge.

    • Falls der verfügbare physikalische Arbeitsspeicher niedriger als der Wert der Option max server memory ist oder falls die Option max server memory nicht festgelegt wurde, sperrt die SQL Server-Instanz den gesamten verfügbaren Arbeitsspeicher mit Ausnahme von 256 MB.

  • Der durch AWE zugeordnete Arbeitsspeicher kann erst nach dem Herunterfahren von SQL Server wieder freigegeben werden.

Konfigurieren von Arbeitsspeicheroptionen

Es wird nachdrücklich empfohlen, für max server memory einen Wert festzulegen, wenn Sie AWE aktivieren. Wenn awe enabled auf 1 festgelegt ist (und mehr physikalischer Arbeitsspeicher verfügbar ist als Prozessraum für den Benutzermodus), sperren Instanzen von SQL Server unter Windows 2000 beinahe den gesamten verfügbaren Arbeitsspeicher (oder den Wert von max server memory, falls diese Option festgelegt wurde), wenn der Server gestartet wird. Wenn max server memory nicht festgelegt ist, ist für andere Anwendungen oder Instanzen von SQL Server weniger als 128 MB physikalischer Arbeitsspeicher verfügbar.

Der durch AWE zugeordnete Arbeitsspeicherpool kann nicht in die Pagingsystemdateien ausgelagert werden. Windows muss andere Anwendungen auslagern, falls zusätzlicher physikalischer Arbeitsspeicher benötigt wird, wodurch die Leistung dieser Anwendungen beeinträchtigt werden kann.

Um zu vermeiden, dass die Leistung anderer Anwendungen beeinträchtigt wird, konfigurieren Sie max server memory so, dass eine gewisse Menge an zusätzlichem freien Arbeitsspeicher vorhanden ist, um die unterschiedlichen Anforderungen von anderen Anwendungen und dem Betriebssystem zu berücksichtigen. Sie können den Arbeitsspeicherumfang bestimmen, der für Instanzen von SQL Server problemlos zugeordnet werden kann, indem Sie identifizieren, wie viel Arbeitsspeicher verfügbar ist, nachdem alle anderen auf dem Computer verwendeten Anwendungen gestartet wurden.

HinweisHinweis

Unter Windows 2000 Server wird min server memory für SQL Server AWE ignoriert.

Bestimmen Sie mithilfe des Serverspeicher gesamt (KB)-Leistungsindikators des SQL Server-Systemmonitors, wie viel Arbeitsspeicher von der Instanz von SQL Server zugeordnet ist, die im AWE-Modus ausgeführt wird, oder rufen Sie die Speicherauslastung mit sysperfinfo ab.

Weitere Informationen finden Sie unter Überwachen der Arbeitsspeicherverwendung.

Ausführen mehrerer Instanzen von SQL Server mit AWE

Wenn auf Ihrem Server Windows 2000 ausgeführt wird, sollte jede Instanz die Einstellung max server memory aufweisen. In SQL Server unter Windows 2000 wird die dynamische Zuordnung für durch AWE zugeordneten Arbeitsspeicher nicht unterstützt. Deshalb wird empfohlen, die Option max server memory für jede Instanz festzulegen.

Die Summe der Werte für max server memory aller Instanzen sollte niedriger als der insgesamt tatsächlich vorhandene physikalische Arbeitsspeicher auf dem Computer sein. Wenn die Summe größer als der insgesamt vorhandene physikalische Arbeitsspeicher ist, werden einige Instanzen entweder nicht gestartet oder haben Zugriff auf weniger Arbeitsspeicher als für max server memory angegeben ist. Angenommen, ein Computer weist 16 GB physikalischen Arbeitsspeicher und drei installierte Instanzen von SQL Server auf. Darüber hinaus ist max server memory pro Instanz auf 8 GB festgelegt. Wenn Sie alle drei Instanzen beenden und neu starten, wird der Speicher wie folgt belegt:

  1. Die erste Instanz hat Zugriff auf 8 GB physikalischen Speicher.

  2. Die zweite Instanz wird gestartet, hat aber Zugriff auf geringfügig weniger als 8 GB physikalischen Speicher (bis zu 128 MB weniger).

  3. Die dritte Instanz wird im dynamischen Arbeitsspeichermodus gestartet und hat Zugriff auf maximal 256 MB physikalischen Speicher.

Weitere Informationen finden Sie unter Verwalten von Arbeitsspeicher für große Datenbanken.

Verwenden von durch AWE zugeordneten Arbeitsspeicher unter Windows Server 2003

In SQL Server wird die dynamische Zuordnung von AWE-Arbeitsspeicher unter Windows Server 2003 unterstützt. Beim Starten wird in SQL Server nur ein kleiner Teil des durch AWE zugeordneten Arbeitsspeichers reserviert. Wenn zusätzlicher durch AWE zugeordneter Arbeitsspeicher erforderlich ist, ordnet das Betriebssystem diesen SQL Server dynamisch zu. Wenn dagegen weniger Ressourcen erforderlich sind, kann SQL Server durch AWE zugeordneten Arbeitsspeicher an das Betriebssystem zurückgeben, damit er von anderen Prozessen oder Anwendungen verwendet werden kann. Weitere Informationen zur Konfigurationsoption awe enabled finden Sie unter awe enabled (Option).

Mit der Einführung der Windows Server 2003-Produktfamilie wird mehr physikalischer Arbeitsspeicher unterstützt. Der für AWE verfügbare Arbeitsspeicher hängt vom verwendeten Betriebssystem ab. In der folgenden Liste ist der für jedes Betriebssystem der Windows Server 2003-Produktfamilie zu diesem Zeitpunkt maximal verfügbare physikalische Arbeitsspeicher aufgeführt.

  • In der Windows Server 2003 Standard Edition werden bis zu 4 GB physikalischer Arbeitsspeicher unterstützt.

  • In der Windows Server 2003 Enterprise Edition werden bis zu 32 GB physikalischer Arbeitsspeicher unterstützt.

  • In der Windows Server 2003 Datacenter Edition werden bis zu 64 GB physikalischer Arbeitsspeicher unterstützt.

Konfigurieren von Arbeitsspeicheroptionen

SQL Server ordnet durch AWE zugeordneten Arbeitsspeicher dynamisch zu, wenn die Anwendung unter einer der Windows Server 2003-Betriebssystem-Editionen ausgeführt wird. Das heißt, der Pufferpool kann durch AWE zugeordneten Arbeitsspeicher dynamisch verwalten (innerhalb der Einschränkungen der Optionen min server memory und max server memory), um die Arbeitsspeicherverwendung von SQL Server mit den allgemeinen Systemanforderungen abzugleichen.

Wenn AWE aktiviert ist, versucht SQL Server stets durch AWE zugeordneten Arbeitsspeicher zu verwenden. Dies gilt für alle Arbeitsspeicherkonfigurationen, einschließlich Computern, die Anwendungen weniger als 3 GB Adressraum für den Benutzermodus bereitstellen.

  • Es wird empfohlen, AWE als standardmäßigen Arbeitsspeichermodus für SQL Server unter Windows Server 2003 festzulegen. Für die Funktion zum Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory) muss AWE während des Starts von SQL Server aktiviert sein. Weitere Informationen finden Sie unter Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory).
HinweisHinweis

AWE ist unter 64-Bit-Betriebssystemen nicht erforderlich und kann unter diesen Betriebssystemen nicht konfiguriert werden.

  • Durch AWE zugeordneter Arbeitsspeicher wird unterhalb von 3 GB unterstützt. Deshalb können Sie die Optionen min server memory und max server memory innerhalb des Arbeitsspeicherbereichs definieren oder für beide Optionen die Standardwerte verwenden.

  • Legen Sie eventuell max server memory für SQL Server fest, um zusätzlichen Arbeitsspeicher für andere Anwendungen, die auf dem Computer ausgeführt werden, sicherzustellen. SQL Server kann zwar durch AWE zugeordneten Arbeitsspeicher dynamisch freigeben, aber der aktuelle durch AWE zugeordnete Arbeitsspeicherumfang kann nicht in die Auslagerungsdatei ausgelagert werden.

Um AWE für eine Instanz von SQL Server verfügbar zu machen, legen Sie mithilfe von sp_configure die Option awe enabled auf 1 fest, und starten Sie dann SQL Server neu.

Weitere Informationen zu min server memory und max server memory finden Sie unter Serverarbeitsspeicher-Optionen.

Vor dem Aktivieren von AWE müssen Sie die Richtlinie Sperren von Seiten im Speicher konfigurieren. Weitere Informationen finden Sie unter Vorgehensweise: Aktivieren der Option Sperren von Seiten im Speicher (Windows).

Beispiel

Das folgende Beispiel zeigt, wie Sie AWE aktivieren und ein Limit von 1 GB für min server memory und 6 GB für max server memory konfigurieren:

Konfigurieren Sie zunächst AWE:

sp_configure 'show advanced options', 1
RECONFIGURE
GO

sp_configure 'awe enabled', 1
RECONFIGURE
GO

Nach dem Neustart von SQL Server wird im SQL Server-Fehlerprotokoll eingetragen, dass Address Windowing Extensions aktiviert ist:

Konfigurieren Sie anschließend den Arbeitsspeicher.

sp_configure 'min server memory', 1024
RECONFIGURE
GO

sp_configure 'max server memory', 6144
RECONFIGURE
GO

In diesem Beispiel bewirken die Arbeitsspeichereinstellungen, dass der Pufferpool durch AWE zugeordneten Arbeitsspeicher zwischen 1 GB und 6 GB dynamisch verwaltet. Falls andere Anwendungen zusätzlichen Arbeitsspeicher benötigen, kann SQL Server den durch AWE zugeordneten Arbeitsspeicher freigeben, falls er nicht benötigt wird. In diesem Beispiel kann durch AWE zugeordneter Arbeitsspeicher nur bis 1 GB freigegeben werden.

Mit dynamischem AWE kann SQL Server auch den Arbeitsspeicher erhöhen, wenn einem Computer, der das Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory) unterstützt, zusätzlicher Arbeitsspeicher hinzugefügt wird. Diese Funktion ist unter Windows Server 2003 3 Enterprise Edition bzw. Datacenter Edition verfügbar und ermöglicht das Hinzufügen von Arbeitsspeicher, während der Computer in Betrieb ist. Angenommen, SQL Server wird unter Windows Server 2003 Enterprise Edition ausgeführt und auf einem Computer mit 16 GB physikalischem Arbeitsspeicher gestartet. Das Betriebssystem ist so konfiguriert, dass Anwendungen auf 2 GB an Adressraum für den virtuellen Arbeitsspeicher beschränkt werden. AWE wurde in SQL Server aktiviert. Später fügt der Systemadministrator 16 GB Arbeitsspeicher hinzu, während der Computer ausgeführt wird. SQL Server erkennt den zusätzlichen Arbeitsspeicher sofort und kann diesen bei Bedarf nutzen.

Weitere Informationen zum Verwenden von AWE finden Sie in der Dokumentation zu Windows Server 2003.

Ausführen mehrerer Instanzen von SQL Server mit AWE

Wenn Sie mehrere Instanzen von SQL Server auf demselben Computer ausführen und jede Instanz AWE-Arbeitsspeicher verwendet, sollten Sie sicherstellen, dass sich die Instanzen erwartungsgemäß verhalten.

Wenn auf Ihrem Server Windows Server 2003 ausgeführt wird, sollte jede Instanz die Einstellung min server memory aufweisen. In SQL Server unter Windows Server 2003 wird die dynamische Verwaltung des durch AWE zugeordneten Arbeitsspeichers unterstützt. Deshalb wird empfohlen, die Option min server memory für jede Instanz festzulegen. Der durch AWE zugeordnete Arbeitsspeicher kann nicht in die Auslagerungsdatei ausgelagert werden. Deshalb sollte die Summe der Werte für min server memory aller Instanzen niedriger als der insgesamt tatsächlich vorhandene Arbeitsspeicher auf dem Computer sein.

Die Option min server memory zwingt SQL Server nicht, beim Starten eine Mindestmenge von Arbeitsspeicher zu reservieren. Arbeitsspeicher wird bedarfsgesteuert basierend auf der Arbeitsauslastung der Datenbank zugeordnet. Wenn jedoch der Schwellenwert für min server memory erreicht ist, wird von SQL Server kein Arbeitsspeicher freigegeben, wenn dadurch der für SQL Server verfügbare Arbeitsspeicher unter diesen Wert sinken würde. Um sicherzustellen, dass jeder Instanz mindestens der für min server memory festgelegte Arbeitsspeicherumfang zugeordnet wird, sollten Sie einen Datenbankserver kurz nach dem Start laden. Während der normalen Serveraktivität variiert der pro Instanz verfügbare Arbeitsspeicher. Für jede Instanz ist jedoch niemals weniger Arbeitsspeicher als durch min server memory festgelegt verfügbar.

Sie können max server memory festlegen oder die Standardeinstellung übernehmen. Wenn Sie für max server memory die Standardeinstellung übernehmen, konkurrieren die SQL Server-Instanzen um Arbeitsspeicher.

Verwenden der Failover-Clusterunterstützung mit AWE

Wenn Sie die Failover-Clusterunterstützung von SQL Server und AWE-Arbeitsspeicher verwenden, müssen Sie sicherstellen, dass der Gesamtwert der Einstellungen für max server memory aller Instanzen niedriger als die niedrigste Menge an physikalischem Arbeitsspeicher ist, die auf den Servern im Failovercluster verfügbar ist. Wenn der Failoverknoten weniger physikalischen Arbeitsspeicher als der ursprüngliche Knoten aufweist, können Instanzen von SQL Server möglicherweise nicht gestartet werden, oder sie können nur mit weniger Arbeitsspeicher gestartet werden, als für sie auf dem ursprünglichen Knoten verfügbar war.