2009-03-08 8 views
1

Ich rollte nur eine kleine Web-Anwendung in der Produktion auf einer Remote-Host. Nachdem es eine Weile gedauert hat, bemerkte ich, dass MS SQL Server begann, den größten Teil des RAM auf dem Server zu verbrauchen und IIS und meine Anwendung auszuhungern.Begrenzung des RAM Verbrauchs von MS SQL Server

Ich habe versucht, die „Server maximalen Speicher“ andere Einstellung, aber schließlich die Speichernutzung beginnt oberhalb dieser Einstellung zu kriechen. Mit dem Aktivitätsmonitor habe ich festgestellt, dass ich keine offenen Verbindungen oder etwas Offensichtliches hinterlasse, also vermute ich es im Cache, in materialisierten Ansichten und ähnlichem.

Ich fange an, dass diese Einstellung nicht bedeutet, zu glauben, was ich denke, es bedeutet. Ich bemerke, dass, wenn ich den Server einfach neu starte, der Prozess der Speicherbelegung ohne nachteilige Auswirkung auf die Anwendung beginnt - Seiten laden ohne Zwischenfälle, alle Abrufe funktionieren.

Es muss eine bessere Möglichkeit geben, sql zu kontrollieren oder zu zwingen, etwas Speicher zurück zum System zu veröffentlichen ????

Antwort

2

Von der MS Knowledge Base:

Beachten Sie, dass die Option max Server Memory nur die Größe des SQL Server Pufferpool begrenzt. Der maximale Serverspeicher Option begrenzt nicht einen verbleibenden nicht reservierten Speicherbereich, dass SQL Server Blätter für die Zuweisungen von anderen Komponenten wie erweiterte gespeicherte Prozeduren, COM-Objekte, nicht gemeinsam genutzter DLLs, EXE-Dateien und MAPI-Komponenten. Aufgrund der vorherigen Zuweisungen ist es normal für die SQL Server privaten Bytes, die maximale Speicherkonfiguration des Servers zu überschreiten.

Verwenden Sie erweiterte gespeicherte Prozeduren, .NET-Code usw., die Speicher außerhalb der Kontrolle von SQL Server undicht sein könnten?

Es gibt einige weitere Diskussion über Speicher/Adressraum Nutzung here

+0

es ist ein Flugzeug Jane App. Die SPs sind einfache CRUD-Routinen und einige Ansichten zum Füllen von Datagridview. Ich habe das Maximum auf ungefähr 512 MB eingestellt, aber es verbraucht immer noch über dem Limit von 1 GB, aber es ist jetzt besser, als wenn es alles heruntersaugt – MikeJ

1

Normalerweise installiert empfehle ich den maximalen Serverspeicher zu ein paar Gigs unter dem physischen Speicher zu setzen.

Wenn Sie IIS und einen auf dem Server installierten Anwendungsserver ausführen müssen, sollten Sie SQL Server weniger Speicher gewähren.