Wie kann man den Arbeitsspeicher vom SQL Server 2012 komplett begrenzen
Hallo,
wir haben bei einem Kunden das Problem, dass der SQL Server 2012 welcher auf 50GB begrenzt ist, sich soviel RAM wegnimmt, bis das System kollabiert. Der Server hat 80GB RAM und der SQL Server verwendet zur Zeit bis 77GB. Ich habe gelesen dass diese MAX_Mermory Einstellung nicht für alles gilt: "There are many things in SQL that don't follow the max memory setting, things that do are the things that SQL Controls directly like buffer pool. if you run CLR stored procs, any memory allocated by those will fall outside of the max memory setting, same for any 3rd party linked server DLLs. These all allocate memory directly in SQL Server process but SQL has no control over them."
Hat jemand damit Erfahrungen und weiß wie wir hier vorgehen können? Ich finde keine wirkliche Lösung.
wir haben bei einem Kunden das Problem, dass der SQL Server 2012 welcher auf 50GB begrenzt ist, sich soviel RAM wegnimmt, bis das System kollabiert. Der Server hat 80GB RAM und der SQL Server verwendet zur Zeit bis 77GB. Ich habe gelesen dass diese MAX_Mermory Einstellung nicht für alles gilt: "There are many things in SQL that don't follow the max memory setting, things that do are the things that SQL Controls directly like buffer pool. if you run CLR stored procs, any memory allocated by those will fall outside of the max memory setting, same for any 3rd party linked server DLLs. These all allocate memory directly in SQL Server process but SQL has no control over them."
Hat jemand damit Erfahrungen und weiß wie wir hier vorgehen können? Ich finde keine wirkliche Lösung.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 282830
Url: https://administrator.de/forum/wie-kann-man-den-arbeitsspeicher-vom-sql-server-2012-komplett-begrenzen-282830.html
Ausgedruckt am: 05.04.2025 um 09:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
Was und wie ist der SQL Server denn eingerichtet bzw. das OS darunter und die weitere Hardware. Was soll der SQL denn tun und welche Eckwerte sind vorhanden? Ereignisprotokolle sagen?
Gruß,
Peter
Zitat von @AndreasOC:
wir haben bei einem Kunden das Problem, ... sich soviel RAM wegnimmt, bis das System kollabiert.
Der SQL ist dazu bestimmt sich so viel RAM zu nehmen wie er bekommen kann wenn er ihn braucht. Works by Design. Nur dein Kollabiert sagt uns nichts. Was soll das sein bzw. was ist das bzw. wie äußerst sich das? Das dürfte nämlich nicht vom SQL Server herkommen, sondern als Begleiterscheinung von etwas ganz anderem.....wir haben bei einem Kunden das Problem, ... sich soviel RAM wegnimmt, bis das System kollabiert.
Was und wie ist der SQL Server denn eingerichtet bzw. das OS darunter und die weitere Hardware. Was soll der SQL denn tun und welche Eckwerte sind vorhanden? Ereignisprotokolle sagen?
Gruß,
Peter
Hi
das sieht aber eher nach einem Fehler aus, wir haben ein vergleichbares Szenario am laufen und der SQL Server belegt nicht 100% vom RAM, das sieht eher danach aus als würde der bereits fröhlich "swappen". Wie viel Platten hast du da denn im Einsatz? bei 5-10 Platten hast ja evtl. gerade mal 3k IOPs (wenn es gut läuft) und das ist bei einer DB (je nach Größe) schon recht mager... Wie ist denn das Logging eingestellt, automatisch vergrößern? Wenn ja in welchen Schritten (alles unter 100MB ist eher unsinnig)?
Ich würde auch nicht alle CPU Kerne für den SQL Server reservieren, wie sind denn die Einstellungen der maximalen Workerthreads am SQL? Hast du HT an? Wenn ja: ausschalten.
Ich kann dir folgende kostenlose Tools empfehlen: http://www.stryk.info/toolbox.html . Mit diesen bekommt man eine recht gute Übersicht über dem Server und dessen Auslastung.
Dann solltest du die "erweiterten Leistungsoptionen" von "Hintegrunddienst" auf "Programme" umstellen, SQL Server ist kein Hintergrunddienst, dort dann ggf. das SWAP File auf ein anderes Laufwerk verschieben.
SQL kann man viel falsch machen (die Erfahrung musste ich auch schon machen) was Geschwindigkeitsoptimierung angeht ..
das sieht aber eher nach einem Fehler aus, wir haben ein vergleichbares Szenario am laufen und der SQL Server belegt nicht 100% vom RAM, das sieht eher danach aus als würde der bereits fröhlich "swappen". Wie viel Platten hast du da denn im Einsatz? bei 5-10 Platten hast ja evtl. gerade mal 3k IOPs (wenn es gut läuft) und das ist bei einer DB (je nach Größe) schon recht mager... Wie ist denn das Logging eingestellt, automatisch vergrößern? Wenn ja in welchen Schritten (alles unter 100MB ist eher unsinnig)?
Ich würde auch nicht alle CPU Kerne für den SQL Server reservieren, wie sind denn die Einstellungen der maximalen Workerthreads am SQL? Hast du HT an? Wenn ja: ausschalten.
Ich kann dir folgende kostenlose Tools empfehlen: http://www.stryk.info/toolbox.html . Mit diesen bekommt man eine recht gute Übersicht über dem Server und dessen Auslastung.
Dann solltest du die "erweiterten Leistungsoptionen" von "Hintegrunddienst" auf "Programme" umstellen, SQL Server ist kein Hintergrunddienst, dort dann ggf. das SWAP File auf ein anderes Laufwerk verschieben.
SQL kann man viel falsch machen (die Erfahrung musste ich auch schon machen) was Geschwindigkeitsoptimierung angeht ..
Ich würde auch nicht alle CPU Kerne für den SQL Server reservieren, wie sind denn die Einstellungen der maximalen Workerthreads am SQL? Hast du HT an? Wenn ja: ausschalten.
Das kann man nicht pauschalisieren. Manchmal läuft es mit HT besser, manchmal ohne. Ausprobieren. Bei mir läuft er mit HT besser.
SQL kann man viel falsch machen (die Erfahrung musste ich auch schon machen) was Geschwindigkeitsoptimierung angeht ..
Stimmt. Das Problem ist aber, dass es keine allgemein gültige, optimale Konfig gibt. Hier muss jeder selber testen.
Looser