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?
quelle
Antworten:
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.
quelle
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.
quelle