SQL Server belegt 87,5% meines Server-RAM. Dies verursachte in letzter Zeit viele Leistungsengpässe wie Langsamkeit. Ich habe dieses Problem untersucht. Eine häufige Lösung, die ich im Internet finden könnte, ist das Festlegen der Höchstgrenze für SQL Server. Dies wurde getan und es werden viele Verbesserungen erzielt. Ich möchte wissen, warum SQL Server die Ressourcen weiterhin verbraucht, wenn der maximale Speicherwert nicht festgelegt ist
36
Antworten:
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, verwendet SQL Server 24 GB Arbeitsspeicher. Dann haben Sie SQL Server und das Betriebssystem kämpfen um Ressourcen, und es wird immer zu einer schlechten Leistung führen.
Wenn Sie das
max server memory
Konfigurationslimit festlegen , begrenzen Sie, wie viel SQL Server für den Pufferpool reservieren kann (virtuell dort, wo Datenseiten und der Prozedurcache gespeichert werden). In SQL Server gibt es noch andere Sachbearbeiter, sodass Sie für Ihre bestimmte Version (2008 R2 und niedriger)max server memory
nur den Pufferpool steuern. Dies wird jedoch immer der größte Speicherkonsument sein.TechNet-Referenz zu den Auswirkungen des minimalen und maximalen Serverspeichers
Was die Frage betrifft , wie viel Speicher ich für das Betriebssystem belassen soll, ist dies eine häufig diskutierte Metrik. Es hängt wirklich alles davon ab, welche anderen Prozesse auf dem Server ausgeführt werden . Vorausgesetzt, es ist ein wirklich dedizierter Server (und das ist fast nie der Fall). Ich würde gerne mindestens 4 GB Arbeitsspeicher für das Betriebssystem sehen (und noch mehr für große Hardware-Boxen). Am wichtigsten ist jedoch, dass Sie überwachen, wie viel nicht verwendeter Speicher vorhanden ist. Seien Sie liberal und geben Sie SQL Server mehr Arbeitsspeicher, wenn Sie feststellen, dass viel verfügbarer (über Perfmon zu überwachender) und nicht verwendeter Arbeitsspeicher vorhanden ist (wobei für diese Eckensituationen immer ein kleiner Puffer übrig bleibt).
quelle
SQL Server verwendet standardmäßig den gesamten Arbeitsspeicher auf dem Server. Der Grund dafür ist, dass SQL Server die Daten in der Datenbank im RAM zwischenspeichert, so dass es schneller auf die Daten zugreifen kann, als dies der Fall wäre, wenn die Daten jedes Mal von der Festplatte gelesen werden müssten, wenn ein Benutzer sie benötigt. Wenn wir jedes Mal auf die Datenträger zugreifen müssten, wenn SQL Server immer wieder dieselben Daten benötigte, wären die E / A-Anforderungen für die Datenträger wahnsinnig hoch.
Normalerweise empfehle ich, etwa 4 GB RAM für Windows zu belassen. Dies hängt jedoch davon ab, wie viel Software auf dem Server ausgeführt wird, welche Komponenten von SQL Server Sie verwenden (nicht alle Komponenten folgen dieser Einstellung) usw.
quelle
Dies funktioniert sofort, ohne dass ein Neustart von SQL erforderlich ist:
Serverspeicher Serverkonfigurationsoptionen
Verwenden Sie die beiden Serverspeicheroptionen Min. Serverspeicher und Max. Serverspeicher , um die vom SQL Server-Speichermanager verwaltete Speicherkapazität (in Megabyte) für eine Instanz von SQL Server neu zu konfigurieren. Standardmäßig kann SQL Server die Speicheranforderungen dynamisch basierend auf den verfügbaren Systemressourcen ändern.
Vorgehensweise zum Konfigurieren einer festen Speichermenge So legen Sie eine feste Speichermenge fest:
Verwenden Sie die Standardeinstellungen, damit SQL Server die Speicheranforderungen dynamisch basierend auf den verfügbaren Systemressourcen ä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!
quelle
Wie Eric sagte, müssen Sie den Speicher verwalten, um Speicherplatz für andere Prozesse freizuhalten. Eine allgemeine Erklärung und eine Anleitung zum Festlegen des maximalen Speichers finden Sie im 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.
quelle
SQL Server verwendet den verfügbaren Arbeitsspeicher, sofern Sie keine Obergrenze für die Verwendung festlegen. In der Regel versuche ich, nicht weniger als 2 GB für das Betriebssystem frei zu lassen, dh wenn Sie 64 GB physischen RAM auf dem Host haben, begrenzen Sie SQL Server mit 62 GB.
http://msdn.microsoft.com/en-us/library/ms191144(v=sql.105).aspx
quelle