it-swarm.com.de

Warum verbraucht SQL Server mehr Serverspeicher?

SQL Server belegt 87,5% meines Server-RAM. Dies führte in letzter Zeit zu vielen Leistungsengpässen wie Langsamkeit. Ich habe dieses Problem untersucht. Eine häufige Lösung, die ich im Internet finden könnte, besteht darin, das maximale Limit für SQL Server festzulegen. Dies wurde getan und es werden viele Verbesserungen erzielt. Ich möchte wissen, warum SQL Server weiterhin Ressourcen verbraucht, wenn der maximale Speicherwert nicht festgelegt ist

37
kombo

SQL Server belegt so viel Speicher, wie Sie zulassen . Standardmäßig umfasst diese Zahl 100% Ihres numerischen Speichers auf Ihrem Computer. Deshalb sehen Sie, was Sie sehen. Wenn Sie SQL Server 24 GB Arbeitsspeicher zur Verfügung stellen, bemüht sich SQL Server, 24 GB Arbeitsspeicher zu verwenden. Dann kämpfen SQL Server und das Betriebssystem um Ressourcen, was immer zu einer schlechten Leistung führt.

Wenn Sie die max server memory Konfigurationslimit: Sie beschränken die Menge, die SQL Server für den Pufferpool zuweisen kann (praktisch dort, wo Datenseiten und der Prozedurcache gespeichert sind). Es gibt andere Speicherangestellte in SQL Server. Für Ihre spezielle Version (2008 R2 und niedriger) gilt also max server memory steuert nur den Pufferpool. Dies wird jedoch immer der größte Speicherverbraucher sein.

TechNet-Referenz zu den Auswirkungen des minimalen und maximalen Serverspeichers

Die Konfigurationsoptionen für minimalen Serverspeicher und maximalen Serverspeicher legen Ober- und Untergrenzen für die vom Pufferpool des Microsoft SQL Server-Datenbankmoduls verwendete Speichermenge fest.

Was die Frage wie viel Speicher sollte ich für das Betriebssystem belassen betrifft, so ist dies eine häufig diskutierte Metrik. Es hängt wirklich alles davon ab, hauptsächlich von welche anderen Prozesse auf dem Server ausgeführt werden. Vorausgesetzt, es ist ein wirklich dedizierter Server (und das ist fast nie der Fall). Ich sehe gerne zumindest 4 GB Speicher für das Betriebssystem (und noch mehr auf Big-Hardware-Boxen). Überwachen Sie jedoch vor allem, wie viel ungenutzter Speicher vorhanden ist. Seien Sie liberal und geben Sie SQL Server mehr Speicher, wenn Sie feststellen, dass viel verfügbarer (über perfmon zu überwachender) und nicht verwendeter Speicher vorhanden ist (natürlich immer einen kleinen Puffer für diese Eckensituationen).

49
Thomas Stringer

SQL Server verwendet standardmäßig den gesamten Speicher auf dem Server. Der Grund dafür ist, dass SQL Server die Daten in der Datenbank in RAM) zwischenspeichert, damit es schneller auf die Daten zugreifen kann, als es könnte, wenn es jedes Mal, wenn ein Benutzer die Daten von der Festplatte lesen muss benötigt es. Wenn wir jedes Mal auf die Festplatten gehen müssten, wenn SQL Server immer und immer wieder dieselben Daten auf der Festplatte benötigte IO Anforderungen wären wahnsinnig hoch.

Normalerweise empfehle ich Leuten, ungefähr 4 Gigs RAM für Windows) zu belassen, aber das hängt wirklich von der Menge der auf dem Server ausgeführten Software ab, welche Komponenten von SQL Server Sie verwenden (nicht alle Komponenten folgen diese Einstellung) usw.

11
mrdenny

Dies funktioniert sofort, ohne dass ein SQL-Neustart erforderlich ist:

Server Memory Server-Konfigurationsoptionen

Verwenden Sie die beiden Serverspeicheroptionen min. Serverspeicher und max. Serverspeicher , um die vom SQL Server-Speichermanager für eine Instanz von SQL Server verwaltete Speichermenge (in Megabyte) neu zu konfigurieren. Standardmäßig kann SQL Server seine Speicheranforderungen basierend auf den verfügbaren Systemressourcen dynamisch ändern.

Vorgehensweise zum Konfigurieren einer festen Speichermenge So legen Sie eine feste Speichermenge fest:

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server und wählen Sie Eigenschaften.
  2. Klicken Sie auf den Speicherknoten.
  3. Geben Sie unter Serverspeicheroptionen den gewünschten Betrag für den minimalen Serverspeicher und den maximalen Serverspeicher ein.

Verwenden Sie die Standardeinstellungen, damit SQL Server seine Speicheranforderungen basierend auf den verfügbaren Systemressourcen dynamisch ändern kann. Die Standardeinstellung für den minimalen Serverspeicher ist 0 und die Standardeinstellung für den maximalen Serverspeicher ist 2147483647 Megabyte (MB).

Ich hoffe das hilft!

6
Nikita Kosousov

Wie Eric sagte, müssen Sie den Speicher verwalten, um freien Speicherplatz für andere Prozesse zu erhalten. Eine allgemeine Erklärung und eine Anleitung zum Festlegen des maximalen Speichers finden Sie in dem Beitrag von Jonathan Kehayias:

http://www.sqlskills.com/blogs/jonathan/how-much-memory-does-my-sql-server-actually-need/

Sie können die Empfehlung unter Berücksichtigung Ihrer Servernutzung ändern.

3
RLF

SQL Server verwendet verfügbares RAM, es sei denn, Sie begrenzen die Verwendung. In der Regel versuche ich, nicht weniger als 2 GB für das Betriebssystem frei zu lassen, d. H. Wenn Sie 64 GB physisches RAM auf dem Host haben, begrenzen Sie SQL Server auf 62 GB.

http://msdn.Microsoft.com/en-us/library/ms191144 (v = sql.105) .aspx

1
Eric Higgins