andreasoc
Goto Top

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.

Content-Key: 282830

Url: https://administrator.de/contentid/282830

Printed on: April 23, 2024 at 14:04 o'clock

Member: Pjordorf
Pjordorf Sep 14, 2015 at 13:30:07 (UTC)
Goto Top
Hallo,

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.....

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
Member: AndreasOC
AndreasOC Sep 14, 2015 at 13:43:45 (UTC)
Goto Top
Also alles was auf dem Windows Server läuft, läuft nicht mehr stabil. Jegliche Datenbankverbindungen brechen ab da zu lange Wartezeiten. Auf dem Server selber bricht der Taskmanager wie auch das Managementstudio komplett weg weil nicht genügend Ressourcen übrig sind, man muss die immer neu aufmachen und arbeiten nur ne knappe Minute, erst ein Neustart des SQL Server Dienstes behebt die Probleme.

Im Moment kann ich nicht auf dem Server drauf um weitere Daten einzuholen, aber der Server ist ziemlich neu, starten CPU, RAID10 15K HDD System, keine Virtualisierung, Server 2008R2. Der SQL Server hat die Standardkonfiguration. Geändert wurde nur der DB Pfad und die maximale RAM Nutzung.
Member: clSchak
clSchak Sep 14, 2015 at 15:31:12 (UTC)
Goto Top
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 ..
Member: Looser27
Looser27 Sep 15, 2015 at 06:54:23 (UTC)
Goto Top
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