Frage Der Speicher von SQL Server steigt ständig, von 1 GB RAM bis zu 7 GB pro Woche


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

Also macht es eine Menge Einfügungen; Die Web-App hat nicht viele Benutzer, daher sind die Lesevorgänge momentan niedrig.

Aber ich merke, dass die RAM-SQL-Server-Benutzer von ~ 1 GB geht, wenn der Server gestartet wird, um ~ 7 GB RAM nach einer Woche zu verwenden.

Gibt es eine Art Speicherleck? Es gab einen Artikel auf MSDN, der vorschlug, dass der SQL-Server den Speicher erhöht, den es für das Zwischenspeichern verwendet und der immer weiter zunehmen wird. Allerdings hat der Server nur 7,5 GB oder RAM, also mache ich mir Sorgen, dass es nicht genügend Arbeitsspeicher haben wird, wenn ich SQL Server nicht jede Woche neu starte ... was falsch scheint.

Ist das typisches Verhalten? Gibt es eine Einstellung, die ich einstellen kann, um die Speichernutzung zu begrenzen?


8
2017-09-18 21:36


Ursprung


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


Antworten:


SQL Server soll so viel RAM wie möglich nutzen. SQL Server ist auch unglaublich Clever. Wir haben Datenbankserver mit einem Arbeitsspeicher von 2 GB bis 96 GB und nicht einmal, musste ich manuell einsteigen und beginnen RAM manuell zu verwalten, und die meisten von ihnen sitzen bei 99,5% Auslastung.

Die einfache Tatsache ist, dass SQL Server, der mit 1 GB verbrauchtem Speicher ausgeführt wird, bei Lesevorgängen sehr viel langsamer ist als ein SQL Server, der mit 96 GB verbrauchtem Speicher arbeitet.

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


14
2017-09-18 22:25



Danke, hatte keine Ahnung, das war das erwartete und gewollte Verhalten. Ich werde darauf achten, es dann in Ruhe zu lassen. - rksprst
@rksprst - alles gut, es braucht etwas gewöhnungsbedürftig. - Mark Henderson♦


In der Regel sollten Sie 1-2 Gigabyte RAM für das Betriebssystem reservieren, damit das Betriebssystem mit RAM arbeiten kann. Der SQL Server kann dann den Rest des Speichers haben.


2
2017-09-19 19:25



Einige MS-Quellen empfehlen, den Speicher zu cachen, also +1. - Sam