116651
Goto Top

MSSQL Arbeitsspeicher Auslastung

Hallo Zusammen

Wir haben bei uns einen Windows 2012 R2 Server mit MSSQL 2014 am laufen.
Nun haben wir festgestellt dass die Auslastung des Arbeitsspeichers ziemlich hoch, resp im Laufe des Tages stetig erhöht und bis Abends bei ca. 80-90% ist.
Ich denke dass MSSQL nimmt was er bekommt und auch nicht mehr hergibt, was schlussendlich zu diesem Ergebnis führt. Dies wäre auch nicht weiter tragisch.

Was mich jedoch verwundert ist der Arbeitsspeicher Hunger nach dem Neustart des Servers. Der Server wird täglich zwischen 00:00Uhr und 01:00Uhr neu gestartet.
Danach ist der RAM kurz frei und wird dann durch den Start der Services etc. entsprechend gebraucht. Alles noch im normalen Bereich.
Dann steigt der Verbrauch des Arbeitsspeichers wieder kontinuierlich, obwohl in dieser Zeit niemand in Verbindung mit der Datenbank arbeitet.
Ist dies ein normales Verhalten oder an was kann das liegen?
Der Server ist momentan auf SP1 und wir überlegen uns deshalb ein Update auf SP3.

Ich hoffe ich konnte mich einigermassen verständlich ausdrücken.

Liebe Grüsse

Jabberwocky

PS: Da es sich ja nicht um eine Entwickler Frage handelt, habe ich es mal in den MS Server Bereich genommen.

Content-Key: 323898

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

Printed on: April 20, 2024 at 00:04 o'clock

Member: Chonta
Chonta Dec 15, 2016 at 13:20:24 (UTC)
Goto Top
Hallo,

Der Server wird täglich zwischen 00:00Uhr und 01:00Uhr neu gestartet.
Eigentlich sollte ein Server permanent laufen und nur wenn Updates es erfordern neugestartet werden.

Ich denke dass MSSQL nimmt was er bekommt und auch nicht mehr hergibt
Richtig, bzw. wenn andere Anwendugnen RAM brauchen wird SQL den RAM auch überdiezeit den Anwendungen frei geben.

Windows versucht sich seit den neuen Versionen so zu verhalten wie Linux und RAm für FS Cahce zu verwenden, das klappt nicht so sauber wie in Linux...

Datenbankserver reservieren sich den RAM auch nicht auf einen Schlag sondern so wie von dir beschrieben immer mehr, und mehr, egal ob da jetzt Viele Anfragen rein kommen oder nicht.

Gruß

Chonta
Member: Pjordorf
Pjordorf Dec 15, 2016 at 13:21:58 (UTC)
Goto Top
Hallo,

Zitat von @116651:
Nun haben wir festgestellt dass die Auslastung des Arbeitsspeichers ziemlich hoch
Works as designed.

Ich denke dass MSSQL nimmt was er bekommt und auch nicht mehr hergibt
Falsch. Ein MSSQL nimmt was er braucht bzw. bekommen kann und gibt wenn Bedarf existiert, diesen RAM auch wieder Frei. Das passiert aber nur wenn der Server oder andere Anwendung den RAM auch anfordern. Und nein, es passiert nicht im Sekundentakt. Allerdings nicht jded SQL Version erlaubt dies. Die Express Version kann nur eine Max. Menge an RAM, egal was Frei ist.

Was mich jedoch verwundert ist der Arbeitsspeicher Hunger nach dem Neustart des Servers.
Nach einen Neustart eines Servers müssen sich sehr viele sachen erst wieder einpendeln bzw. ihren RAM Bedarf neu ordnen.

Der Server wird täglich zwischen 00:00Uhr und 01:00Uhr neu gestartet.
Warum sollte das nötig sein? Dein SQL bekommt das nicht wirklich weil du immer weider mit null anfängst, egal was sich dein SQL tagsüber an Optimierungen selbst angeeignet hat. Welcher zwingende Grund ist für das tägliche neustarten verantwortlich?

Dann steigt der Verbrauch des Arbeitsspeichers wieder kontinuierlich, obwohl in dieser Zeit niemand in Verbindung mit der Datenbank arbeitet.
Irgendwelche SQL Wartungsarbeiten? Datensicherungen?

Ist dies ein normales Verhalten oder an was kann das liegen?
Kommt drauf an was bei euch eingestellt bzw eingerichtet wurde und wie alles Konfiguriert ist?

Gruß,
Peter
Member: Looser27
Looser27 Dec 15, 2016 at 13:46:39 (UTC)
Goto Top
Moin,

ein Neustart des SQL Dienstes hat den gleichen Effekt. Dafür muss man nicht den Server neu starten.
Wenn der SQL dir zu gierig ist, begrenze ihn.
Vor allem, wenn noch andere Dienste entsprechend Reserven brauchen.
Das Update auf das letzte SP kann auf jeden Fall hilfreich sein, aber Dein Speicherproblem wird es nicht beseitigen.

Gruß Looser
Mitglied: 116651
116651 Dec 15, 2016 at 13:53:01 (UTC)
Goto Top
Vielen Dank für die Antwort.

Nach einen Neustart eines Servers müssen sich sehr viele sachen erst wieder einpendeln bzw. ihren RAM Bedarf neu ordnen.
Wie gesagt diesen Teil kann ich noch verstehen, aber wieso er danach noch weiter mach nicht wirklich.

Irgendwelche SQL Wartungsarbeiten? Datensicherungen?
Nein zu diesem Zeitpunkt wird gar nichts am Server gemacht.

Kommt drauf an was bei euch eingestellt bzw eingerichtet wurde und wie alles Konfiguriert ist?
Ich habe lediglich den Windows Server zur Verfügung gestellt sowie die Grundinstallation von MSSQL. Konfiguriert wurde er von einer externen Firma, welche die Datenbank für ihre Software die bei uns läuft nutzt.
Dort haben wir diesbezüglich auch nachgefragt. Sie haben uns jedoch gesagt dass sie dieses Phänomen nicht kennen und auch nicht wüssten woher es kommen könnte.
Member: Penny.Cilin
Penny.Cilin Dec 15, 2016 updated at 14:58:06 (UTC)
Goto Top
Hallo,

dann hat die externe Firma keine Ahnung. Muss irgendso eine Klitsche sein, welche NULL Agnung vom SQL Server hat.
Wie die Vorposter schon geschrieben haben, nimmt sich der SQL Server wie er krigen kann, es sei denn man konfiguriert dies entsprechend.


Gruss Penny
Member: Pjordorf
Pjordorf Dec 15, 2016 at 22:03:28 (UTC)
Goto Top
Hallo,

Zitat von @116651:
Wie gesagt diesen Teil kann ich noch verstehen, aber wieso er danach noch weiter mach nicht wirklich.
Ohne jetzt konkrete Waerte hier nachlesen zu können, ist deine Aussage und deine Fragen darwus nicht nachzukommen. Da wirst du uns schon krete Zahlen nennen müssen.
RAM Insgesamt
RAM in Nutzung deines SQL (Alle Instanzen, Prozesse usw.)
Einstellungen bzw. Konfigurationnen bzg. RAM

Nein zu diesem Zeitpunkt wird gar nichts am Server gemacht.
Das kann auch das normale SQL Startverhalten bei deiner Umgebung sein. Wie gesagt, wir wissen hier nichts was bei dir ....
Es können auch irgendwelche Prozesse auf dein Blech sein welche dort mit der SQL Datenbank etwas anstellen die du als solches gar nicht erkennst... denn dein
Ich habe lediglich den Windows Server zur Verfügung gestellt sowie die Grundinstallation von MSSQL. Konfiguriert wurde er von einer externen Firma, welche die Datenbank für ihre Software die bei uns läuft nutzt.
lässt stark Vermuten das du gar nicht weisst was dein Server tut. Jaja, schon klar SQL Server....

Dort haben wir diesbezüglich auch nachgefragt. Sie haben uns jedoch gesagt dass sie dieses Phänomen nicht kennen
Nur das die Wissen wie und was die dort bei dir getan haben, bzw. was deren Software genau erwartet und wie den SQL Server konfiguriert haben. All das Wissen wir hier nicht und raten daher fröhlich ins Blaue rein. Selbst dein Blech hast du uns nicht erläutert. Ist als wenn du uns fragst warum das Wasser immer aus dein Eimer läuft... Du stellst Fragen, erwartest Antworten mit denen du was anfangen kannst - hältst es aber nicht nötig uns die Rahmenbedingen zu nennen - wir haben ja alle eine DIN geprüfte Glaskugel, oder?

Und wenn dein Server den vom SQL Server genutzten RAM nicht freigibt, dann wird auch das Gründe haben. Der einfachste ist das auf dein Server eben nichts läuft was RAM anfordern könnte....

Gruß,
Peter