Der SQL Server-Speicher steigt ständig von 1 GB RAM auf 7 GB pro Woche

8

Ich habe eine ~ 45 GB Datenbank, die schnell wächst (~ 1 GB pro Woche).

Es macht also viele Einfügungen; Die Web-App hat nicht viele Benutzer, daher sind die Lesevorgänge derzeit gering.

Ich stelle jedoch fest, dass die Benutzer des RAM-SQL-Servers von ~ 1 GB, wenn der Server zum ersten Mal gestartet wird, nach einer Woche ~ 7 GB RAM verwenden.

Gibt es eine Art Speicherverlust? Es gab einen Artikel über MSDN, in dem vorgeschlagen wurde, dass der SQL Server den für das Caching verwendeten Speicher erhöht und der immer weiter zunimmt. Der Server hat jedoch nur 7,5 GB oder RAM, daher mache ich mir Sorgen, dass ihm der Speicher ausgehen wird, wenn ich SQL Server nicht jede Woche neu starte ... was falsch erscheint.

Ist das ein typisches Verhalten? Gibt es eine Einstellung, mit der ich die Speicherauslastung begrenzen kann?

rksprst
quelle
3
Siehe Farseekers Antwort. Er traf den Nagel auf den Kopf. Dies ist ein normales, sofort einsatzbereites Verhalten, und es gibt zwar eine Möglichkeit, die Speichernutzung von SQL zu begrenzen. das musst du nicht wirklich tun. Unser SQL Server ist in wenigen Stunden auf 10,5 GB - 11 GB (von insgesamt 12 GB) Speicher begrenzt. Ich und mein DBA sind sehr glücklich, wenn wir SQL mit so viel Speicher sehen. Dies bedeutet, dass unsere Anwendungen viel schneller auf diese Daten zugreifen können.
Cypher

Antworten:

14

SQL Server soll so viel RAM verwenden, wie er in die Hände bekommen kann. SQL Server ist auch unglaublich schlau. Wir haben Datenbankserver mit einem RAM von 2 GB bis 96 GB, und ich musste nie ein einziges Mal manuell RAM verwalten, und die meisten von ihnen sind zu 99,5% ausgelastet.

Die einfache Tatsache ist, dass SQL Server, der mit 1 GB verbrauchtem Speicher ausgeführt wird, beim Lesen viel langsamer ist als ein SQL Server, der mit 96 GB verbrauchtem Speicher ausgeführt wird.

Wenn Sie die SQL Server-Rollen nicht mit anderen speicherintensiven Rollen teilen, lassen Sie sie einfach in Ruhe. Es wird nie mehr Speicher verbrauchen, der im System verfügbar ist, und wenn es zu 99% ausgelastet ist, ist es großartig - Sie haben einen großen Cache erstellt und die Dinge werden von nun an schneller sein.

Mark Henderson
quelle
Danke, hatte keine Ahnung, dass dies das erwartete und gewünschte Verhalten war. Ich werde es dann in Ruhe lassen.
rksprst
1
@rksprst - alles gut, es ist gewöhnungsbedürftig.
Mark Henderson
2

Normalerweise möchten Sie dem Betriebssystem 1-2 GB RAM zuweisen, damit das Betriebssystem über RAM verfügt, mit dem es arbeiten kann. Der SQL Server kann dann den Rest des Speichers haben.

mrdenny
quelle
Einige MS-Quellen empfehlen, Ihren Speicher zu begrenzen, also +1.
Sam