Serverarbeitsspeicher-Optionen
Aktualisiert: 14. April 2006
Mit den beiden Arbeitsspeicheroptionen für den Server, min server memory und max server memory, können Sie den von einer Instanz von Microsoft SQL Server verwendeten Umfang des Arbeitsspeichers (in MB) im Pufferpool neu konfigurieren.
In der Standardkonfiguration werden Arbeitsspeicheranforderungen in SQL Server basierend auf den verfügbaren Systemressourcen dynamisch geändert. Die Standardeinstellung für min server memory ist auf 0 und die Standardeinstellung für max server memory ist auf 2147483647 festgelegt. Die Mindestmenge an Arbeitsspeicher, die Sie für max server memory angeben können, beträgt 16 MB.
Hinweis: |
---|
Wenn die Option max server memory auf den Minimalwert festgelegt wird, kann das die Leistung von SQL Server erheblich einschränken und sogar das Starten von SQL Server verhindern. Wenn sich SQL Server nach dem Ändern dieser Option nicht starten lässt, müssen Sie ihn mithilfe der Startoption -f starten und die Option max server memory auf ihren vorherigen Wert zurücksetzen. Weitere Informationen finden Sie unter Verwenden der Startoptionen für den SQL Server-Dienst. |
Wenn Arbeitsspeicher von SQL Server dynamisch verwendet wird, wird der im System verfügbare physikalische Arbeitsspeicher in regelmäßigen Abständen abgefragt. Unter Microsoft Windows 2000 wird der Puffercache von SQL Server vergrößert oder reduziert, um den Umfang des freien physikalischen Arbeitsspeichers je nach Serveraktivität zwischen 4 MB und 10 MB zu halten. Dadurch kommt Windows 2000 ohne Auslagerungen aus. Wenn weniger Arbeitsspeicher verfügbar ist, wird von SQL Server Arbeitsspeicher für Windows 2000 freigegeben. Wenn mehr Arbeitsspeicher verfügbar ist, wird dem Pufferpool von SQL Server Arbeitsspeicher zugeordnet. Dem Pufferpool wird von SQL Server nur dann Arbeitsspeicher hinzugefügt, wenn durch die Arbeitsauslastung mehr Arbeitsspeicher benötigt wird. Bei Servern im Ruhestatus wird der Umfang des zugehörigen Pufferpools nicht vergrößert.
Unter Windows Server 2003 wird von SQL Server die für Speicherbenachrichtigungen verfügbare API QueryMemoryResourceNotification verwendet, um zu ermitteln, wann der Pufferpool Speicher zuordnen oder freigeben kann.
Grundsätzlich empfiehlt es sich, in SQL Server eine dynamische Verwendung des Arbeitsspeichers zuzulassen. Sie können die Speicheroptionen jedoch auch manuell festlegen und den Umfang des für SQL Server zugreifbaren Arbeitsspeichers einschränken. Bevor Sie den Umfang des Arbeitsspeichers für SQL Server festlegen, sollten Sie die geeignete Arbeitsspeichereinstellung ermitteln. Ziehen Sie dazu vom gesamten physikalischen Speicher den Arbeitsspeicher ab, der für Windows 2000 oder Windows Server 2003 und mögliche weitere Instanzen von SQL Server erforderlich ist. (Falls der Computer nicht vollständig für SQL Server reserviert ist, müssen Sie zusätzlich auch den für andere Verwendungen des Systems benötigten Arbeitsspeicher abziehen.) Die Differenz entspricht der maximalen Arbeitsspeichergröße, die Sie SQL Server zuweisen können.
Manuelles Festlegen der Arbeitsspeicheroptionen
Es gibt zwei grundlegende Methoden, um die Arbeitsspeicheroptionen von SQL Server manuell festzulegen:
- Bei der ersten Methode legen Sie für min server memory und max server memory denselben Wert fest. Dieser Wert entspricht der festen Arbeitsspeichergröße, die dem SQL Server-Pufferpool nach Erreichen des Wertes zugeordnet wird.
- Bei der zweiten Methode legen Sie min server memory und max server memory auf einen Bereich von Arbeitsspeicherwerten fest. Diese Methode ist vor allem dann sinnvoll, wenn der System- oder Datenbankadministrator eine Instanz von SQL Server in Abhängigkeit von den Arbeitsspeicheranforderungen anderer Anwendungen auf demselben Computer konfigurieren möchte.
Mithilfe der Konfigurationsoption min server memory wird sichergestellt, dass für den Pufferpool einer Instanz von SQL Server eine Mindestmenge an Arbeitsspeicher verfügbar ist. Allerdings wird die unter min server memory angegebene Arbeitsspeichermenge von SQL Server nicht gleich beim Start zugeordnet. Sobald der Wert für die Speicherauslastung aufgrund der Clientbelastung erreicht ist, kann SQL Server nur dann Arbeitsspeicher aus dem zugeordneten Pufferpool freigeben, wenn der Wert für min server memory reduziert wird.
Hinweis: |
---|
Allerdings kann nicht sichergestellt werden, dass durch SQL Server die in min server memory angegebene Arbeitsspeichermenge zugeordnet wird. Wenn die in min server memory angegebene Arbeitsspeichermenge aufgrund der Serverlast zu keinem Zeitpunkt zugeordnet werden muss, wird SQL Server mit weniger Arbeitsspeicher ausgeführt. |
Mithilfe der Konfigurationsoption max server memory wird verhindert, dass der Pufferpool von SQL Server mehr Arbeitsspeicher als angegeben verwendet. Auf diese Weise können mithilfe des verbleibenden Arbeitsspeichers andere Anwendungen schneller gestartet werden. Allerdings wird die unter max server memory angegebene Arbeitsspeichermenge von SQL Server nicht gleich beim Start zugeordnet. Die Speicherauslastung wird von SQL Server nach Bedarf so lange erhöht, bis der in max server memory angegebene Wert erreicht ist. SQL Server kann diese Speicherauslastung nur dann überschreiten, wenn der in max server memory angegebene Wert erhöht wird.
Bevor Sie den max server memory-Wert herabsetzen, untersuchen Sie mit dem Systemmonitor das SQLServer:Buffer Manager-Leistungsobjekt, während es unter Belastung steht, und notieren Sie sich die aktuellen Werte der Leistungsindikatoren Gestohlene Seiten und Reservierte Seiten. Diese Leistungsindikatoren melden den Arbeitsspeicher als Anzahl von 8-KB-Seiten. max server memory sollte auf einen Wert oberhalb der Summe dieser beiden Werte festgelegt werden, um Fehler aufgrund nicht ausreichenden Arbeitsspeichers zu vermeiden. Ein ungefährer Wert für die niedrigste, noch sinnvolle max server memory-Einstellung (in MB) ist ([Gestohlene Seiten] + [Reservierte Seiten])/ 100. Damit die Reduzierung für max server memory in Kraft treten kann, müssen Sie ggf. SQL Server neu starten, um den Arbeitsspeicher freizugeben.
Maximieren des Datendurchsatzes in Netzwerkanwendungen
Wenn die für Netzwerkverbindungen verfügbare Option Datendurchsatz für Netzwerkanwendungen maximieren ausgewählt ist, erhalten Anwendungen, die gepufferte E/A-Vorgänge ausführen, vom Betriebssystem Priorität. Dazu werden die betreffenden E/A-Seiten im Dateisystemcache zwischengespeichert. Durch diese Option wird gegebenenfalls der Arbeitsspeicher beschränkt, der für den normalen Betrieb von SQL Server verfügbar ist.
So überprüfen Sie die aktuellen Einstellungen des Betriebssystems
Klicken Sie zunächst auf Start und dann auf Systemsteuerung. Doppelklicken Sie anschließend auf Netzwerkverbindungen und dann auf LAN-Verbindung.
Klicken Sie auf der Registerkarte Allgemein auf Eigenschaften, wählen Sie Datei- und Druckerfreigabe für Microsoft-Netzwerke aus, und klicken Sie dann auf Eigenschaften.
Wenn die Option Datendurchsatz für Netzwerkanwendungen maximieren ausgewählt ist, wählen Sie ggf. weitere Optionen aus. Klicken Sie auf OK, und schließen Sie alle noch geöffneten Dialogfelder.
AWE-Arbeitsspeicher unter Windows Server 2003
Unter Windows Server 2003 kann SQL Server 2005 zusätzlich AWE-Arbeitsspeicher (Address Windowing Extentions) verwenden, was zu einer weiteren Verbesserung des Lastenausgleichs zwischen den eigenen Arbeitsspeicheranforderungen und denen des Betriebssystems führt. Dieser Lastenausgleich zwischen SQL Server und dem Betriebssystem unterliegt den für min server memory und max server memory angegebenen Beschränkungen. Wenn die Serverhardware das Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory) unterstützt, kann dem Server je nach Bedarf zusätzlicher physikalischer Arbeitsspeicher hinzugefügt werden, ohne dass ein Neustart erforderlich ist. Weitere Informationen zur Konfigurationsoption AWE enabled finden Sie unter awe enabled (Option). Weitere Informationen finden Sie unter Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory).
Hinweis: |
---|
Unter Windows Server 2003 wird dynamischer AWE-Arbeitsspeicher nur auf Servern unterstützt, deren physikalischer Arbeitsspeicher unterhalb des konfigurierten virtuellen Arbeitsspeicherlimits liegt. Für die Aktivierung des AWE-Arbeitsspeichers unter Windows 2000 galt die Voraussetzung, dass der verfügbare physikalische Arbeitsspeicher den virtuellen Arbeitsspeicher übersteigt. |
Im Idealfall sollten Sie SQL Server so viel Arbeitsspeicher wie möglich zuordnen, ohne dass das System Seiten auf die Festplatte auslagern muss. Der Schwellenwert variiert in Abhängigkeit vom System. Beispielsweise empfiehlt sich bei einem 32-GB-System, das ausschließlich für die Verwendung durch SQL Server bestimmt ist, ein maximaler Schwellenwert von 30 bis 31 GB für SQL Server. Der entsprechende Schwellenwert auf einem 64-GB-System sollte 60 bis 62 GB betragen.
Hinweis: |
---|
In dem Maße, in dem die Arbeitsspeichermenge für SQL Server erhöht wird, muss auch ausreichend Speicherplatz zur Vergrößerung der Unterstützungsdatei (pagefile.sys) für den virtuellen Arbeitsspeicher des Betriebssystems verfügbar sein, um zusätzlichen Arbeitsspeicher bereitzustellen. Weitere Informationen zur Unterstützungsdatei für den virtuellen Arbeitsspeicher finden Sie in der Dokumentation für Windows 2000 oder Windows Server 2003. |
Mithilfe der Statistiken des Windows-Systemmonitors können Sie den Wert des Arbeitsspeichers bei Bedarf anpassen. Ändern Sie den Wert nur, wenn Sie Arbeitsspeicher hinzufügen bzw. entfernen oder wenn Sie den Verwendungszweck des Systems ändern möchten.
Manager für virtuellen Arbeitsspeicher
32-Bit-Betriebssysteme, wie Windows 2000 und Windows Server 2003, bieten Zugriff auf einen virtuellen Adressraum von 4 GB. Die unteren 2 GB dieses virtuellen Arbeitsspeichers sind für einzelne Prozesse reserviert und für Anwendungen verfügbar. Die oberen 2 GB sind für das Betriebssystem reserviert. Alle Betriebssystemeditionen ab Microsoft Windows XP Professional, einschließlich Windows Server 2003, stellen in der Datei boot.ini einen Schalter bereit, der Anwendungen Zugriff auf einen virtuellen Speicher von 3 GB gewährt und das Betriebssystem auf 1 GB beschränkt. Weitere Informationen zur Arbeitsspeicherkonfiguration mithilfe des Schalters /3GB finden Sie in der Windows-Dokumentation.
Hinweis: |
---|
In Windows Server 2003 wird PAE nur automatisch aktiviert, wenn der Server Geräte zum Hinzufügen von Speicher im laufenden Systembetrieb (Hot-Add Memory) verwendet. In einem System, das für die Verwendung von Geräten zum Hinzufügen von Speicher im laufenden Systembetrieb konfiguriert wurde, ist es nicht erforderlich, den /PAE-Schalter zu verwenden. In allen anderen Fällen müssen Sie den /PAE-Schalter in der Datei Boot.ini verwenden, um Arbeitsspeicher über 4 GB zu nutzen. |
Der 4-GB-Adressraum wird vom Windows-Manager für virtuellen Arbeitsspeicher (VMM, Virtual Memory Manager) dem verfügbaren physikalischen Arbeitsspeicher zugeordnet. Der Umfang des unterstützten physikalischen Arbeitsspeichers wurde mit Einführung des Betriebssystems Windows Server 2003 erhöht. Daher ist die Menge des für AWE zugreifbaren Arbeitsspeichers vom verwendeten Betriebssystem abhängig:
- Windows Server 2003 Standard Edition unterstützt bis zu 4 GB physikalischen Arbeitsspeicher.
- Windows Server 2003 Enterprise Edition unterstützt bis zu 32 GB Arbeitsspeicher.
- Windows Server 2003 Datacenter Edition unterstützt bis zu 64 GB Arbeitsspeicher.
Eine Win32-Anwendung wie SQL Server arbeitet nur mit virtuellen oder logischen Adressen, nicht mit physikalischen Adressen. Wie viel physikalischer Arbeitsspeicher von einer Anwendung zu einem bestimmten Zeitpunkt verwendet wird (das Workingset), wird durch den verfügbaren physikalischen Speicher und von VMM bestimmt. Die Arbeitsspeicherbelegung kann durch die Anwendung nicht direkt gesteuert werden.
Windows 2000 Advanced Server, Windows 2000 Datacenter Server sowie Windows Server 2003 Enterprise Edition und Windows Server 2003 Datacenter Edition können die 4-GB-Grenze mithilfe der von Intel bereitgestellten PAE (Physical Adressing Extensions) überschreiten. Mithilfe des Schalters /PAE in der Windows-Konfigurationsdatei boot.ini können Sie den Zugriff auf den physikalischen Arbeitsspeicher auch oberhalb der 4-GB-Grenze bereitstellen. Dies ist für den AWE-Arbeitsspeicherzugriff oberhalb von 4 GB erforderlich. Weitere Informationen zum Verwenden dieser Arbeitsspeicherkonfiguration unter Windows 2000 und Windows Server 2003 finden Sie in der Windows-Dokumentation.
Mit virtuellen Adresssystemen wie unter Windows 2000 oder Windows Server 2003 kann mehr physikalischer Arbeitsspeicher zugesichert werden, als tatsächlich vorhanden ist, sodass das Verhältnis von virtuellem zu physikalischem Arbeitsspeicher das Verhältnis 1:1 überschreiten kann. Auf diese Weise können größere Programme auf Computern mit verschiedenen Arbeitsspeicherkonfigurationen ausgeführt werden. Wenn jedoch deutlich mehr virtueller Arbeitsspeicher verwendet wird, als die kombinierten durchschnittlichen Workingsets aller Prozesse verwenden, führt dies zu einem ungünstigen Leistungsverhalten.
Bei min server memory und max server memory handelt es sich um erweiterte Optionen. Wenn Sie diese Einstellungen mithilfe der gespeicherten Systemprozedur sp_configure ändern, muss die Konfigurationsoption show advanced options auf 1 festgelegt sein. Die Einstellungen treten auch ohne einen Neustart des Servers sofort in Kraft.
Ausführen mehrerer Instanzen von SQL Server
Wenn Sie mehrere Instanzen von Datenbankmodul ausführen, stehen Ihnen zum Verwalten des Arbeitsspeichers drei Möglichkeiten zur Verfügung:
- Steuern Sie die Speicherauslastung mithilfe von max server memory. Richten Sie für jede Instanz Maximaleinstellungen ein, und achten Sie darauf, dass der gesamte zugeordnete Arbeitsspeicher nicht größer ist als der insgesamt auf dem Computer verfügbare physikalische Speicher. Es empfiehlt sich, den jeder Instanz zugeordneten Arbeitsspeicher proportional zur erwarteten Arbeitsauslastung oder Datenbankgröße zu bemessen. Dieser Ansatz hat den Vorteil, dass beim Starten neuer Prozesse oder Instanzen sofort freier Arbeitsspeicher für die Prozesse oder Instanzen zur Verfügung steht. Der Nachteil ist, wenn nicht alle Instanzen ausgeführt werden, dass keine der laufenden Instanzen den verbleibenden freien Arbeitsspeicher nutzen kann.
- Steuern Sie die Speicherauslastung mithilfe von min server memory. Richten Sie für jede Instanz Minimaleinstellungen ein, sodass die Summe dieser Mindestwerte 1 bis 2 GB unterhalb des gesamten physikalischen Speichers auf dem Computer liegt. Auch bei dieser Methode empfiehlt es sich, die Werte proportional zu der für die jeweilige Instanz erwarteten Arbeitsauslastung zu bemessen. Dieser Ansatz hat den Vorteil, dass die laufenden Instanzen den verbleibenden freien Arbeitsspeicher nutzen können, wenn nicht alle Instanzen gleichzeitig ausgeführt werden. Diese Vorgehensweise ist auch dann sinnvoll, wenn auf dem Computer ein weiterer arbeitsintensiver Prozess vorhanden ist, da sichergestellt ist, dass SQL Server zumindest eine angemessene Menge an Arbeitsspeicher erhält. Der Nachteil besteht darin, dass es beim Starten einer neuen Instanz (oder eines anderen Prozesses) ggf. etwas dauern kann, bis die laufenden Instanzen Speicher freigeben. Dies trifft vor allem dann zu, wenn die Instanzen zuerst noch geänderte Seiten in ihre jeweiligen Datenbanken zurückschreiben müssen. Unter Umständen müssen Sie auch die Größe der Auslagerungsdatei deutlich erhöhen.
- Unternehmen Sie nichts (dies wird nicht empfohlen). Die ersten Instanzen, denen eine Arbeitslast zugewiesen wird, weisen sich den gesamten Arbeitsspeicher zu. Instanzen im Leerlauf oder Instanzen, die später gestartet werden, müssen in dieser Situation u. U. mit einer minimalen Menge an Arbeitsspeicher auskommen. SQL Server 2005 versucht nicht, die Speicherauslastung über mehrere Instanzen hinweg auszugleichen. Alle Instanzen antworten jedoch auf Signale der Windows-Arbeitsspeicherbenachrichtigung, um die Größe ihrer Pufferpools anzupassen. In Windows Server 2003 SP1 nimmt Windows keinen Speicherausgleich bei Anwendungen vor, die über ein Arbeitsspeicherbenachrichtigungs-API verfügen. Es erfolgt lediglich eine globale Rückmeldung über die Verfügbarkeit von Arbeitsspeicher auf dem System.
Sie können diese Einstellungen ohne Neustart der Instanzen ändern. Dadurch können Sie problemlos mit verschiedenen Einstellungen experimentieren, um die für Ihr Nutzungsmuster am besten geeigneten Einstellungen herauszufinden.
Siehe auch
Konzepte
Überwachen und Optimieren der Leistung
Festlegen von Serverkonfigurationsoptionen
Aktivieren des AWE-Arbeitsspeichers für SQL Server
Andere Ressourcen
RECONFIGURE (Transact-SQL)
Dokumentationsübersicht zur Replikation
sp_configure (Transact-SQL)
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
14. April 2006 |
|
05. Dezember 2005 |
|