simon1979
Goto Top

Server 2022 zeigt volle Ram Belegung an aber sind nur 4,3GB nach Liste belegt

Moin,

wir haben einen Server 2022 Std stehen auf dem an sich nur eine SQL Datenbank für einen Teilekatalaog läuft und halt Fileserver Firmen Ablage halt. Bei dem Server läuft immer nach ca 5 Tagen der Ram voll. Das komisch ist in der Ram auslastungsliste, wenn ich das zusammenzähle, sind das nur um die 4GB die dort angezeigt werden. Reserviert ist auch nichts. Hatte auch schon Drittanbieter Apps Prozessmon usw. mir angeschaut aber auch da mal in eine csv exportiert und Addiert das sind nur um die 4GB bei der Belegung. Ich verstehe es nicht das 15,8GB Belegung von 16 Angezeigt wird. Der Server läuft dann auch saulangsam, nutzt dann nur die Auslagerungsdatei. Habe jetzt schon mal andere Antiviren und Malware Scanner rüber laufen lassen haben aber alle nichts gefunden. Updates sind alle drauf.

Kenn einer von euch noch ein tool mit dem man sich die Belegung noch besser anzeigen lassen kann. Die meisten greifen ja nur auf die Infos vom Betriebssystem zu die ich so gefunden habe.

Wenn man RAM Cleaner mach gibt er übrigens nichts Frei was mich auch wundert.

Danke Schonmal

Content-ID: 83358381885

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

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

ukulele-7
ukulele-7 16.07.2024 aktualisiert um 08:28:29 Uhr
Goto Top
Das klingt eigentlich nach einem normalen MSSQL, abgesehen von dem "sau langsam".
https://learn.microsoft.com/de-de/sql/relational-databases/performance-m ...
Standardmäßig kann eine SQL Server-Instanz im Laufe der Zeit einen Großteil des verfügbaren Arbeitsspeichers des Windows-Betriebssystems auf dem Server verbrauchen. Sobald der Arbeitsspeicher abgerufen wurde, wird er nicht freigegeben, es sei denn, es wird eine hohe Arbeitsspeicherauslastung erkannt. Dies ist entwurfsbedingt und kein Anzeichen für einen Arbeitsspeicherverlust im SQL Server-Prozess. Verwenden Sie die Option Max. Serverarbeitsspeicher, um die Menge des Arbeitsspeichers einzuschränken, die SQL Server für die meisten Anwendungsfälle belegen darf.
SQL nimmt, was da ist. Eigentlich geht er glaube ich nicht in die Auslagerungsdatei, die habe ich aber abgeschaltet. Eigentlich wird der Rest des Servers auch nicht "sau langsam", allerdings habe ich auch nicht wirklich etwas neben SQL laufen.

Beim begrenzen des RAMs für SQL wäre ich eigentlich zurückhaltend. Lieber mehr RAM zuweisen.
radiogugu
radiogugu 16.07.2024 um 08:28:12 Uhr
Goto Top
Morschen.
Schau mal mit dem Process Explorer von Microsoft nach:

https://learn.microsoft.com/en-us/sysinternals/downloads/process-explore ...

Prinzipiell nehmen sich SQL Server den zur Verfügung stehenden RAM.

Welche Art Festplatten arbeiten denn in dem Server? Ist dieser virtuell oder physisch?

Welche Aufgaben hat der Server denn noch?

Gruß
Marc
em-pie
em-pie 16.07.2024 um 08:38:38 Uhr
Goto Top
Moin,

ruf mal aus der SysInternalSuite die RAMMAP.exe /RAMMap64.exe auf und schaue, ob/ wieviel RAM-Kapa im Standby ist.

Es könnte auch sein, dass da auf dem Server eine Software läuft, dessen Entwickler sich nicht mit dem Garbage-Collector beschäftigt haben...

Das komisch ist in der Ram auslastungsliste, wenn ich das zusammenzähle, sind das nur um die 4GB die dort angezeigt werden.
Wichtig ist, dass du im TaskManager hier dir ALLE Prozesse und nicht nur deine eigenen anzeigen lässt.
erikro
erikro 16.07.2024 um 08:49:18 Uhr
Goto Top
Moin,

works as designed. Jeder Datenbankserver greift sich so viel RAM wie er nur kann. Deshalb ist es auch eine sehr schlechte Idee, auf einem DB-Server noch andere Sachen laufen zu lassen. Wenn nämlich die andere Sache RAM braucht, dann ist keines mehr da und der Server fängt an zu swappen. Das ist bei einem DB-Server tödlich, wie Du ja feststellst.

Lösung:
Nimm den Fileserver runter und baue dafür eine eigene Maschine.

Liebe Grüße

Erik
MysticFoxDE
MysticFoxDE 16.07.2024 um 09:36:47 Uhr
Goto Top
Moin @erikro,

works as designed. Jeder Datenbankserver greift sich so viel RAM wie er nur kann.

ähm, klares jain.
Also, ja, per Default krallen sich die DB-Server gerne den gesamten RAM da die Nutzung dieses, per Default-Konfig nicht eingegrenzt ist. Das sollte man jedoch als erstes bei einer SQL-Server Installation einstellen, daher dann doch eher nein. 🤪

Gruss Alex
Simon1979
Simon1979 16.07.2024 um 10:54:35 Uhr
Goto Top
Ok Schaue ich mir nachher nochmal an. Aber an sich müsste ich SQL nicht in der Auslastung sehen können?. Da läuft wie gesagt nichts anderes drauf ist nur noch ein Ordner Freigeben mit Dokumenten. ansonsten nutzen die halt ondedrive. Ist aber nicht viel.
ukulele-7
ukulele-7 16.07.2024 um 11:13:38 Uhr
Goto Top
Zitat von @Simon1979:

Ok Schaue ich mir nachher nochmal an. Aber an sich müsste ich SQL nicht in der Auslastung sehen können?.
Nein, nicht im Taskmanager unter Details, nur unter Leistung \ Arbeitsspeicher.
Da läuft wie gesagt nichts anderes drauf ist nur noch ein Ordner Freigeben mit Dokumenten. ansonsten nutzen die halt ondedrive. Ist aber nicht viel.
Das sollte nicht schlimm sein und auch nicht den Server sehr beanspruchen. Da MSSQL aber eigentlich nur fast den ganzen RAM nehmen sollte dürfte es auch sonst im OS kein Performance Problem geben.

Auch weil der Server ja erst nach Tagen, nicht nach kürzester Zeit, den RAM ausschöpft. Um das genauer zu betrachten wirst du dich aber mit den Performance-Werten des SQL befassen müssen, das kannst du nicht alles im Taskmanger abfrühstücken.
mbehrens
mbehrens 16.07.2024 um 12:11:23 Uhr
Goto Top
Zitat von @Simon1979:

wir haben einen Server 2022 Std stehen auf dem an sich nur eine SQL Datenbank für einen Teilekatalaog läuft und halt Fileserver Firmen Ablage halt. Bei dem Server läuft immer nach ca 5 Tagen der Ram voll.

Was ist es denn für ein Datenbankprodukt?

Dies kann durchaus das vom Hersteller vorgesehene Standardverhalten sein (nehme alles an RAM, was es gibt).
erikro
erikro 16.07.2024 um 16:17:28 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @erikro,

works as designed. Jeder Datenbankserver greift sich so viel RAM wie er nur kann.

ähm, klares jain.
Also, ja, per Default krallen sich die DB-Server gerne den gesamten RAM da die Nutzung dieses, per Default-Konfig nicht eingegrenzt ist. Das sollte man jedoch als erstes bei einer SQL-Server Installation einstellen, daher dann doch eher nein. 🤪

Nein. Das lässt man schön so. Warum sollte der DB-Server auch nicht alles RAM, das da ist, nutzen?
ukulele-7
ukulele-7 16.07.2024 um 19:33:16 Uhr
Goto Top
Zitat von @erikro:

Zitat von @MysticFoxDE:

Moin @erikro,

works as designed. Jeder Datenbankserver greift sich so viel RAM wie er nur kann.

ähm, klares jain.
Also, ja, per Default krallen sich die DB-Server gerne den gesamten RAM da die Nutzung dieses, per Default-Konfig nicht eingegrenzt ist. Das sollte man jedoch als erstes bei einer SQL-Server Installation einstellen, daher dann doch eher nein. 🤪

Nein. Das lässt man schön so. Warum sollte der DB-Server auch nicht alles RAM, das da ist, nutzen?
Das sehe ich auch eher so, grundsätzlich sollte man das nicht ohne konkreten Anlass machen.

Die DATEV hatte das z.B. am Anfang in ihrer Standard-Installation so. Da hat man dann den RAM irgendwann aufgestockt und sich gewundert, das es keine Auswirkungen hatte. Mittlerweile entspricht das nicht mehr dem Standard bei Neuinstallation.
MysticFoxDE
MysticFoxDE 16.07.2024 um 21:29:14 Uhr
Goto Top
Moin @erikro,

Nein. Das lässt man schön so. Warum sollte der DB-Server auch nicht alles RAM, das da ist, nutzen?

eben nicht, weil der DB Server auf einem OS läuft und dieses benötigt vor allem im Falle von Windows auch noch ordentlich RAM und eventuell AV usw.. Daher ist es nicht wirklich sehr ratsam, einem einzigen Dienst, unlimitierten Zugriff auf eine bestimmte Ressource zu geben, die auch von anderen wichtigen Diensten benutzt wird. Und spätestens wenn dein OS nicht genug RAM hat, läuft auch der SQL nicht mehr wirklich gut.

Gruss Alex
ukulele-7
ukulele-7 16.07.2024 aktualisiert um 23:19:38 Uhr
Goto Top
https://www.sqlshack.com/min-and-max-memory-configurations-in-sql-server ...
By default, SQL Server dynamically acquires memory depending on the server RAM; however, it ensures that it does not create memory shortage for remaining processes.

SQL Server database engine has a background process called Resource monitor. Its task is to monitor the internal and external memory indicators.
Also grundsätzlich sollte SQL Server das hin bekommen und ein Limit nicht nötig sein. Windows hat für den Betrieb ausreichend RAM. Ein paar Fileshares gehen auch noch. AV Software hat auf einem DB Server nichts verloren.

Wenn du mehrere Instanzen hast oder noch andere Dienste da drauf laufen müssen oder der Server mehr Dateien bewegt als die Datenbank Anfragen bekommt dann macht ein Limit Sinn. Wenn nichts davon der Fall ist und der Server wirklich nur DBMS macht und dennoch Performance Probleme hat dann ist irgendwas nicht richtig. Dann wird ein Limit deinem OS helfen aber nicht deinen Datenbank Usern.
MysticFoxDE
MysticFoxDE 17.07.2024 um 07:46:17 Uhr
Goto Top
Moin @ukulele-7,

https://www.sqlshack.com/min-and-max-memory-configurations-in-sql-server ...
By default, SQL Server dynamically acquires memory depending on the server RAM; however, it ensures that it does not create memory shortage for remaining processes.
SQL Server database engine has a background process called Resource monitor. Its task is to monitor the internal and external memory indicators.

https://www.sqlxpert.de/grundeinstellungen-sql-server-performance-tuning ...
Punkt 2 😉


Also grundsätzlich sollte SQL Server das hin bekommen und ein Limit nicht nötig sein. Windows hat für den Betrieb ausreichend RAM.

Und genau das funktioniert eben mehr schlecht als recht. 😔

Ein paar Fileshares gehen auch noch.

Das hat auf einem DB Server hingegen gar nichts zu suchen, alleine schon deswegen weil du mit den Shares, respektive dem blöden Standby-Memory (Caching), den RAM noch mehr und auch "unkontrollierter" belastest.

AV Software hat auf einem DB Server nichts verloren.

Dann viel Spass beim Abschliessen der nächsten Cyber-Security-Versicherung.

Wenn du mehrere Instanzen hast oder noch andere Dienste da drauf laufen müssen oder der Server mehr Dateien bewegt als die Datenbank Anfragen bekommt dann macht ein Limit Sinn. Wenn nichts davon der Fall ist und der Server wirklich nur DBMS macht und dennoch Performance Probleme hat dann ist irgendwas nicht richtig. Dann wird ein Limit deinem OS helfen aber nicht deinen Datenbank Usern.

Unsere Kunden haben selten Probleme mit der Performance der DB's, da alle mittlerweile ein All-Flash SAN haben. 😁

Wenn Probleme mit DB's die letzten Jahre aufgetreten sind, dann deswegen, weil die meist jüngeren Entwickler entweder die DB's nicht korrekt designt/angelegt haben oder überhaupt nicht mehr wissen, wie man performante und ressourcenschonende SQL Statements schreibt. 😔😭

Gruss Alex
erikro
erikro 17.07.2024 um 08:55:41 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @erikro,

Nein. Das lässt man schön so. Warum sollte der DB-Server auch nicht alles RAM, das da ist, nutzen?

eben nicht, weil der DB Server auf einem OS läuft und dieses benötigt vor allem im Falle von Windows auch noch ordentlich RAM

Ja und? Das BS startet vor der DB-Server. Daher bekommt es auch sein RAM vorher.

und eventuell AV

Wer braucht schon Schlangenöl auf einem DB-Server? Aber selbst wenn, startet auch das vor dem DB-Server.

usw..

Usw. hat auf einem DB-Server nichts zu suchen. Falls es auch finanziellen Gründen notwendig ist, einen multifunktionalen Server zu bauen, dann hast Du recht.

Daher ist es nicht wirklich sehr ratsam, einem einzigen Dienst, unlimitierten Zugriff auf eine bestimmte Ressource zu geben, die auch von anderen wichtigen Diensten benutzt wird. Und spätestens wenn dein OS nicht genug RAM hat, läuft auch der SQL nicht mehr wirklich gut.

Nun, seit über dreißig Jahren habe ich es noch nie erlebt, dass das BS in die Knie geht, weil der DB-Server sich möglichst viel RAM reserviert. Ich habe es aber schon oft erlebt, dass die DB lahmt, weil nicht genug RAM vorhanden war.

Liebe Grüße

Erik
ukulele-7
ukulele-7 17.07.2024 um 09:31:57 Uhr
Goto Top
Halten wir fest das es zwei Standpunkte mit jeweils pro und contra gibt was die Default-Konfiguration angeht.

In diesem Fall finde ich die Sache sonderbar. Der Server geht nicht sofort hoch sondern im Laufe von 5 Tagen, das zeigt mir, das der Server genutzt wird und sich gemäß seiner Einstellungen verhält. In diesen 5 Tagen müsste alles "normal" laufen. Gibt es da irgendwo merkliche Einschränkungen?

Wenn der RAM dann voll ist, wie genau äußern sich dann Probleme? Oder hast du dir einfach nur gedacht RAM voll = doof? Man kann die Speichernutzung limitieren, aber das Limit muss ja irgendwo auch sinnvoll sein.

Ist es darüber hinaus ein Problem, das der Server den verfügbaren RAM komplett ausschöpft? Wenn ja warum? Ist das eine VM oder eine bare metal Installation?
erikro
erikro 17.07.2024 um 09:50:11 Uhr
Goto Top
Moin,

Zitat von @ukulele-7:

Halten wir fest das es zwei Standpunkte mit jeweils pro und contra gibt was die Default-Konfiguration angeht.

In diesem Fall finde ich die Sache sonderbar. Der Server geht nicht sofort hoch sondern im Laufe von 5 Tagen,

Auch das ist das normale Verhalten. Der DB-Server greift sich nicht sofort alles RAM. Das dauert seine Zeit. Übrigens ist er in der Zeit, in der er den Speicher organisiert, etwas langsamer. Deshalb sollte man auch DB-Server wirklich nur dann neu starten, wenn es unbedingt notwendig ist.

Liebe Grüße

Erik
ukulele-7
ukulele-7 17.07.2024 um 13:07:16 Uhr
Goto Top
Zitat von @erikro:

Auch das ist das normale Verhalten.
Genau das meinte ich. Normales Verhalten bis zu dem Punkt, wo der OP glaubt sein Server habe ein Problem. Ich vermute der Punkt liegt nach diesen 5 Tagen, aber wann das genau der Fall ist und wie sich das genau äußert wüsste ich gern.
MysticFoxDE
MysticFoxDE 17.07.2024, aktualisiert am 18.07.2024 um 10:08:29 Uhr
Goto Top
Moin @erikro,

Ja und? Das BS startet vor der DB-Server. Daher bekommt es auch sein RAM vorher.

ja und nachdem es das gröbste hochgefahren hat, startet es zyklisch oder nach Anforderung noch diverse andere Tasks, die allesamt ebenfalls RAM fressen. 😉

Wer braucht schon Schlangenöl auf einem DB-Server?

Aus Performancesicht gebe ich dir recht, aus sichherheitstechnischen Gründen gehört auf einen DB Server erst recht ein AV Scanner, weil auf diesen meist auch sensible Daten liegen.

Aber selbst wenn, startet auch das vor dem DB-Server.

Und auch ein AV Scanner verbrachen nicht immer dieselbe RAM Menge, sondern können sich je nach Tätigkeit auch später mal das eine oder andere Gigabyte extra gönnen, vor allem z.B. bei Fullscanns.

Usw. hat auf einem DB-Server nichts zu suchen. Falls es auch finanziellen Gründen notwendig ist, einen multifunktionalen Server zu bauen, dann hast Du recht.

Nix multifunktional, ein DB ist bei mir ein DB und sonst nichts anderes!
Oh verdammt .. 🤢.. 🤢 .. 🤮 .. tschuldigung, musste irgendwie gerade an einen SBS denken. 🙃

Nun, seit über dreißig Jahren habe ich es noch nie erlebt, dass das BS in die Knie geht, weil der DB-Server sich möglichst viel RAM reserviert.

Na ja, dieser Mist ist auch erst seit etwa Server 2019 schlimmer geworden, davor war das noch nicht so extrem. 😔

Wenn der RAM weg ist, geht nicht nur das OS sondern so gut wie alles was darauf läuft in die Knie.

Das Problem ist übrigens bei jedem Server/Workstation/Notebook mittlerweile fast gleich. 😭
Denn sobald der RAM einmal durch z.B. den StandBy-Memory aufgefressen wurde, siehe z.B. der aktuelle Stand bei meiner Workstation ...

taskmanager standby-memory

..., sprich sobald die 7777 MB vollends auch aufgefressen wurden, kannst du die Performance von dieser fast knicken. 😔

Das Einzige was in dieser Situation dann noch übrig bleibt, ist entweder per z.B. RAMMap den StandbyMemory zu flushen oder den Rechner einmal durchzubooten. Danach läuft die Workstation wieder 1-2 Wochen und dann fängt das Spielchen wieder von vorne an und das bei !! 128GB !! RAM. 😭🤮

Gruss Alex
MysticFoxDE
MysticFoxDE 17.07.2024 um 22:14:53 Uhr
Goto Top
Moin @ukulele-7,

In diesem Fall finde ich die Sache sonderbar. Der Server geht nicht sofort hoch sondern im Laufe von 5 Tagen

das ist ganz normal. Denn nach einem Reboot ist zuerst sowohl der DB-Cache vollständig leer als auch das blöde Standby-Memory und mit der Zeit wächst sowohl der DB Cache durch die Nutzung der DB an, als auch das blöde Standby-Memory durch die Nutzung von SMB und irgendwann kommt der Augenblich, wo der SQL-Server und auch des Software-Block-Caching (Standby-Memory) von Windows den RAM aufgefressen haben und dann geht es nur noch mit angezogener Handbremse weiter.

Wenn der RAM dann voll ist, wie genau äußern sich dann Probleme?

Na ja, hattest du schon mal das Problem, dass du an ein Notebook einen externen Bildschirm angeschlossen hast und dieser erst nach einem Neustart des Notebooks erkannt werden konnte?
Wenn ja, dann hast du eine der tausenden möglichen Folgen dieses Problems, bereits schon selber erlebt.

Ist es darüber hinaus ein Problem, das der Server den verfügbaren RAM komplett ausschöpft? Wenn ja warum?

Ganz einfach, weil das Bereitstellen von zusätzlichem RAM für eine Anwendung oder auch Treiber dann um einiges länger dauert, weil das Windows dazu zuerst einen Teil des Software-Caches flushen/leeren muss und im Falle einer Anwendung merkst du das dann daran, dass diese sehr zäh wird und im Falle eines Treibers, dass dieser im blödesten fall nicht mehr ordentlich oder gar nicht mehr läuft.

Ist das eine VM oder eine bare metal Installation?

Das ist vollkommen egal da auf beiden selbe Auswirkung.

Gruss Alex
MysticFoxDE
MysticFoxDE 17.07.2024 um 22:17:38 Uhr
Goto Top
Moin @em-pie,

ruf mal aus der SysInternalSuite die RAMMAP.exe /RAMMap64.exe auf und schaue, ob/ wieviel RAM-Kapa im Standby ist.

👍

Gruss Alex
MysticFoxDE
MysticFoxDE 17.07.2024 um 22:23:10 Uhr
Goto Top
Moin @Simon1979,

Wenn man RAM Cleaner mach gibt er übrigens nichts Frei was mich auch wundert.

benutze lieber RAMMap, das funktioniert ganz sicher, zumindest dann, wenn es explizit als Administrator ausgeführt wird.

https://learn.microsoft.com/de-de/sysinternals/downloads/rammap

Du kannst z.B. einen zeitgesteuerten Task bauen, der alle paar Stunden auf dem entsprechenden Server "RAMMap64.exe -Et" als Administrator ausführt, dann sollte dein Problem bei weitem seltener auftreten. 😉

Gruss Alex
erikro
erikro 18.07.2024 um 11:06:38 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @erikro,

Ja und? Das BS startet vor der DB-Server. Daher bekommt es auch sein RAM vorher.

ja und nachdem es das gröbste hochgefahren hat, startet es zyklisch oder nach Anforderung noch diverse andere Tasks, die allesamt ebenfalls RAM fressen. 😉

Auf einem reinen DB-Server? Was wird denn da zyklisch oder auf Anfrage gestartet? Im Übrigen ist das BS der Herr über das RAM und kann dem DB-Server seine Reservierungen auch wieder entziehen.

Wer braucht schon Schlangenöl auf einem DB-Server?

Aus Performancesicht gebe ich dir recht, aus sichherheitstechnischen Gründen gehört auf einen DB Server erst recht ein AV Scanner, weil auf diesen meist auch sensible Daten liegen.

Dann nenne mir mal bitte ein Szenario, wie auf einen reinen DB-Server Schadsoftware eingeschleust werden kann, (Admin hat zu viel Lack gesoffen zählt nicht. face-wink )

Nun, seit über dreißig Jahren habe ich es noch nie erlebt, dass das BS in die Knie geht, weil der DB-Server sich möglichst viel RAM reserviert.

Na ja, dieser Mist ist auch erst seit etwa Server 2019 schlimmer geworden, davor war das noch nicht so extrem. 😔

Wenn der RAM weg ist, geht nicht nur das OS sondern so gut wie alles was darauf läuft in die Knie.

Das Problem ist übrigens bei jedem Server/Workstation/Notebook mittlerweile fast gleich. 😭
Denn sobald der RAM einmal durch z.B. den StandBy-Memory aufgefressen wurde, siehe z.B. der aktuelle Stand bei meiner Workstation ...

Du vergleichst Äpfel mit Birnen. Eine Workstation hat einen User und viele laufende Programme. Ein DB-Server hat viele Zugriffe von außen und eine Anwendung, die läuft. Eine Workstation hat ein Workstation-BS. Ein Server hat (hoffentlich) ein Server-BS. Was auf Deiner Workstation passiert, hat mit der Funktionalität eines Servers nichts zu tun.
MysticFoxDE
MysticFoxDE 18.07.2024 um 18:26:53 Uhr
Goto Top
Moin @erikro,

Auf einem reinen DB-Server? Was wird denn da zyklisch oder auf Anfrage gestartet?

kann es sein, dass du schon länger die Aufgabenplanung eines aktuellen Windows nicht mehr angeschaut hast?

Im Übrigen ist das BS der Herr über das RAM und kann dem DB-Server seine Reservierungen auch wieder entziehen.

Nein, das kann das Windows zum Glück nicht wirklich, sprich, den bereits reservierten RAM einer Anwendung oder eines Treibers wieder wegschnappen, diesen muss die entsprechende Applikation/Treiber schon selber wieder freigeben.

Dann nenne mir mal bitte ein Szenario, wie auf einen reinen DB-Server Schadsoftware eingeschleust werden kann, (Admin hat zu viel Lack gesoffen zählt nicht. face-wink )

Auch die SQL Server oder das SSMS habe auch hin und wieder Sicherheitslücken. 😔
Ausserdem habe ich schon selber einen Incident betreut, bei dem die Angreifer einen SQL als "Zwischentür" benutzt haben. 😭

Du vergleichst Äpfel mit Birnen.

Ganz sicher nicht, ich spreche/schreibe lediglich von Dingen die ich schon über Jahre selbst beobachte. 😉

Eine Workstation hat einen User und viele laufende Programme. Ein DB-Server hat viele Zugriffe von außen und eine Anwendung, die läuft.

Und sowohl das eine als auch das andere frisst auch RAM, und wenn dieser erschöpft ist, dann hast du sowohl auf der Workstation als auch auf dem Server dasselbe Problem, sprich eine angezogene Handbremse.

Eine Workstation hat ein Workstation-BS. Ein Server hat (hoffentlich) ein Server-BS.

Ist im Falle von Windows eh so gut wie egal, da selber Kernel. 🙃

Was auf Deiner Workstation passiert, hat mit der Funktionalität eines Servers nichts zu tun.

Wenn es um erschöpfte Ressourcen geht, dann gibt es auch hier keinen Unterschied, da beide in die Knie gehen, vor allem beim RAM.

Gruss Alex
erikro
erikro 19.07.2024 um 09:05:48 Uhr
Goto Top
Moin,

Zitat von @MysticFoxDE:
Auf einem reinen DB-Server? Was wird denn da zyklisch oder auf Anfrage gestartet?

kann es sein, dass du schon länger die Aufgabenplanung eines aktuellen Windows nicht mehr angeschaut hast?

Das ist mein täglich Brot. Du beantwortest die Fragen nicht, sondern weichst aus.

Im Übrigen ist das BS der Herr über das RAM und kann dem DB-Server seine Reservierungen auch wieder entziehen.

Nein, das kann das Windows zum Glück nicht wirklich, sprich, den bereits reservierten RAM einer Anwendung oder eines Treibers wieder wegschnappen, diesen muss die entsprechende Applikation/Treiber schon selber wieder freigeben.

Das ist schlicht und ergreifend falsch. In allen modernen Betriebssystemen ist der Kernel Herr über den Speicher. Das einzige BS, bei dem das nicht so war, war DOS. Deshalb gab es unter DOS/Windows auch den Fehler, dass eine Applikation den Speicherbereich einer anderen überschreiben konnte (Schutzfehler). Das gibt es heute nicht mehr. Aber damit erübrigt sich auch jede weitere Diskussion, da Du offensichtlich keine Ahnung von der Speicherverwaltung moderner Betriebssysteme hast.

Dann nenne mir mal bitte ein Szenario, wie auf einen reinen DB-Server Schadsoftware eingeschleust werden kann, (Admin hat zu viel Lack gesoffen zählt nicht. face-wink )

Auch die SQL Server oder das SSMS habe auch hin und wieder Sicherheitslücken. 😔

Und wie genau verhindert das Schlangenöl das Ausnutzen eines Exploit? Wie genau verhindert es z. B. eine SQL-Injection oder einen Stack-Overflow?

Ausserdem habe ich schon selber einen Incident betreut, bei dem die Angreifer einen SQL als "Zwischentür" benutzt haben. 😭

Was zeigt, dass Dein Schlangenöl dagegen machtlos ist.


Du vergleichst Äpfel mit Birnen.

Ganz sicher nicht, ich spreche/schreibe lediglich von Dingen die ich schon über Jahre selbst beobachte. 😉

Doch. Eine Workstation funktioniert nun einmal ganz anders als ein Server. Wir sprechen hier über Server und Du führst als Beispiel Deine Workstation an.

Eine Workstation hat ein Workstation-BS. Ein Server hat (hoffentlich) ein Server-BS.

Ist im Falle von Windows eh so gut wie egal, da selber Kernel. 🙃

Da spricht wieder der Experte. Deshalb ist es ja auch so, dass ein Windows-Client (10) maximal 2TB verwalten kann, während die Server bis zu 24TB (2019) können. Der Grund ist natürlich, dass die Speicherverwaltung sich nicht unterscheidet. face-wink

Vielleicht solltest Du mal was zum Thema lesen, bevor Du aus Deinen "Erfahrungen" Legenden bildest und verbreitest.

Fazit: Bei einem reinen DB-Server lässt man die DB so wie sie ist. Dann läuft das rund und ohne Ausfälle. Alles andere sind Legenden.

Liebe Grüße

Erik
MysticFoxDE
MysticFoxDE 19.07.2024 um 09:52:01 Uhr
Goto Top
Moin @erikro,

Das ist mein täglich Brot. Du beantwortest die Fragen nicht, sondern weichst aus.

ich weiche nicht aus, sondern habe deine Frage durchaus gezielt beantwortet.
Wenn du aus der Antwort jedoch nicht die richtigen Rückschlüsse ziehst, dann kennst du dich mit der Aufgabenplanung und deren Default Tasks wohl doch nicht so gut aus.
Dann kommen noch diversen andere Dinge dazu die nur hin und wieder laufen, wie Indizierungsdienste, Windows-Update Suche, u.s.w und all diese Dinge benötigen wenn sie ausgeführt werden, mitunter auch RAM. 😉

Nein, das kann das Windows zum Glück nicht wirklich, sprich, den bereits reservierten RAM einer Anwendung oder eines Treibers wieder wegschnappen, diesen muss die entsprechende Applikation/Treiber schon selber wieder freigeben.

Das ist schlicht und ergreifend falsch. In allen modernen Betriebssystemen ist der Kernel Herr über den Speicher.

Nein ist es nicht, das OS verwaltet zwar den RAM, dennoch kann es einen einmal einer Applikation oder einem Treiber zugeordneten RAM nicht wirklich einfach so wieder wegziehen.

Aber damit erübrigt sich auch jede weitere Diskussion, da Du offensichtlich keine Ahnung von der Speicherverwaltung moderner Betriebssysteme hast.

Ähm, ich fürchte hier musst du eher noch etwas die Schulbank drücken.
Und bevor du mir jetzt wieder mit einem blöden Spruch antwortest, solltest du mal selber versuchen einen einer Anwendung/Treiber bereits zugeordneten RAM wieder OS Seitig zu minimieren und wenn dir das gelungen ist, dann darfst du auch gerne wieder frech sein. 😉

Und wie genau verhindert das Schlangenöl das Ausnutzen eines Exploit? Wie genau verhindert es z. B. eine SQL-Injection oder einen Stack-Overflow?

In dem sie z.B. durch Anomalie-Erkennung, IPS, ATP & Co, ja das kann ein lokaler AV Scanner mittlerweile auch alles, den Angriff erkenn, im besten Fall diesen auch gleich unterbinden und dem Admin noch Bescheid geben. 😉

Was zeigt, dass Dein Schlangenöl dagegen machtlos ist.

Wenn auf dem entsprechenden SQL ein AV drauf wäre, dann hätte es diesen Incident, so vielleicht gar nicht gegeben. 😔

Da spricht wieder der Experte. Deshalb ist es ja auch so, dass ein Windows-Client (10) maximal 2TB verwalten kann, während die Server bis zu 24TB (2019) können. Der Grund ist natürlich, dass die Speicherverwaltung sich nicht unterscheidet. face-wink

Der Grund ist, das die Nutzung des Kernels, beim Client an manchen stellen etwas kastriert ist, was aber nicht bedeutet, dass es ein anderen Kernel ist. Ausserdem kannst du Windows 10 oder 11 für Workstation nehmen, dieses unterstützt genau so viele CPU’s und auch RAM wie ein Server und stellt auch RDMA Clientseitig bereit. 😉

Vielleicht solltest Du mal was zum Thema lesen, bevor Du aus Deinen "Erfahrungen" Legenden bildest und verbreitest.
Das solltest du glaube ich selber machen.

Fazit: Bei einem reinen DB-Server lässt man die DB so wie sie ist. Dann läuft das rund und ohne Ausfälle. Alles andere sind Legenden.

Sein mir nicht böse, aber von Datenbanken scheinst du nur eine oberflächliche Ahnung zu haben.
Und bevor du mir jetzt wieder mit einem neunmalklugen Spruch kommst, solltest du dir lieber mal meinen Werdegang, der z.B. bei XING für jeden einsehbar ist, etwas genauer anschauen. 😉

Gruss Alex
MysticFoxDE
MysticFoxDE 19.07.2024 um 17:23:59 Uhr
Goto Top
Moin @erikro,

so, jetzt habe ich etwas mehr Zeit und kann dir somit auch etwas detaillierter erklären, warum ich heute Morgen etwas unfreundlicher war.

Und zwar hast du mich mit dem folgenden Spruch …

Fazit: Bei einem reinen DB-Server lässt man die DB so wie sie ist. Dann läuft das rund und ohne Ausfälle. Alles andere sind Legenden.

… am meisten auf die Palme getrieben. 🙃

Denn genau das was du damit aussagen wolltest, sprich, per Default läuft alles am besten, hat schon vor 20 Jahren nicht gestimmt und stimmt heutzutage erst recht nicht und zwar nicht nur bei den DB’s, sondern heutzutage fast bei allem (in der IT). 😔

Denn trotz dessen, dass heutige Systeme denen vor 10 Jahren zum Teil um Faktoren überlegen sind, dauern dieselben Abläufe auf diesen, zum Teil sogar noch länger wie auf den alten Systemen. Und wenn man die zuständigen Systemintegratoren mit der schlechten Performance der neuen Hardware konfrontiert, dann kommt meistens nur ein Schulterzucken und ein Verweis auf irgendwelche Datenblätter und die theoretischen Angaben in diesen. Ob die Angaben jedoch auch wirklich zutreffen, wird meiner Erfahrung nach so gut wie nicht geprüft, selbst von Herstellern wie DELL nicht … 🤮 … die massenweisen Server mit Brodcom NIC’s verticken, die per Default und vor allem bei einem Hyper-V-Node, alles andere als gut funktionieren. 😭

Siehe z.B. auch meine jüngste Erfahrung …
NVIDIA L40S - Die erste Erfahrung ist etwas bescheiden
… gerade mal 30% der möglichen Leistung per Default und das bei einer 10K GPU. 😡

Und auch wenn ich mir aktuelle und vor allem neu designte DB von so mancher Anwendung anschauen, könnte ich nur heulen, weil ich aus zwei Kilometern Entfernung erkenne, dass diese mit einem DB-Erstellungs-Assistenten erstellt wurden. 😭 Sprich nur noch etwas die Maus schubsen, und fleissig weiter weiter, klicken und fertig ist die DB … mit nur einem DB File wo die Daten und Indexe landen und einem ReDo.log, sprich, performancetechnisch einfach nur 🤮.

Oder … versuch mal per Default zwischen zwei Windows Clients oder auch Servern eine 10G NIC mit nur einem Kopierjob einer grossen Datei auszulasten.

U.s.w., glaub mir, von diesen Geschichten kann ich noch einige Duzende erzählen.

Neben mir stehen für einen Kunden 3 neue High-End CAD-Workstations und bei diesen sind übrigens dieselben Optimierungen notwendig wie auch bei den Servern, damit deren GPU oder RAM oder SSD oder CPU, mit einer ordentlichen Leistung läuft, den per Default erreichen diese auch stelleweise nur ~20-30%. 😔 🤮🤮🤮

Gruss Alex
erikro
erikro 22.07.2024 um 11:04:06 Uhr
Goto Top
Moin,

Zitat von @MysticFoxDE:

Moin @erikro,
Das ist schlicht und ergreifend falsch. In allen modernen Betriebssystemen ist der Kernel Herr über den Speicher.

Nein ist es nicht, das OS verwaltet zwar den RAM, dennoch kann es einen einmal einer Applikation oder einem Treiber zugeordneten RAM nicht wirklich einfach so wieder wegziehen.

Aber damit erübrigt sich auch jede weitere Diskussion, da Du offensichtlich keine Ahnung von der Speicherverwaltung moderner Betriebssysteme hast.

Ähm, ich fürchte hier musst du eher noch etwas die Schulbank drücken.
Und bevor du mir jetzt wieder mit einem blöden Spruch antwortest, solltest du mal selber versuchen einen einer Anwendung/Treiber bereits zugeordneten RAM wieder OS Seitig zu minimieren und wenn dir das gelungen ist, dann darfst du auch gerne wieder frech sein. 😉

Rechte Maustaste auf die Taskleiste, Task-Manager, Prozess raussuchen, auf "Task beenden" klicken und schon habe ich den Speicher der Anwendung auf 0 reduziert. Ganz einfach. Das geht so ohne weiteres, weil das BS über das VMM Herr über den Speicher ist und sonst niemand. Das kann man auch daran erkennen, dass das BS in der Lage ist, Speicherinhalte auf die Festplatte auszulagern. So, und nu? BTW: In der gesamten Literatur wird bei der Unterscheidung zwischen entziehbaren und nicht entziehbaren Ressourcen das RAM als Beispiel für ersteres genannt.

Wie gesagt: Lass gut sein. Du verlässt Dich auf Deine Erfahrungen und Dein Xing-Profil. Ich auf Wissen.

Liebe Grüße

Erik
MysticFoxDE
MysticFoxDE 22.07.2024 aktualisiert um 11:54:58 Uhr
Goto Top
Moin @erikro,

Rechte Maustaste auf die Taskleiste, Task-Manager, Prozess raussuchen, auf "Task beenden" klicken und schon habe ich den Speicher der Anwendung auf 0 reduziert. Ganz einfach.

ähm, damit minimierst du OS-Seitig nicht wirklich den einer Anwendung oder einem Treiber zugeordneten RAM, sondern schiesst nur stumpft den ganzen Prozess ab und was dabei mit der entsprechenden Anwendung oder Treiber dann passiert, ist dir hoffentlich auch bewusst. 🤨

Das geht so ohne weiteres, weil das BS über das VMM Herr über den Speicher ist und sonst niemand.

Wenn du hart einen Task abschiesst, dann ist das ganz normal, dass dessen zugeordneter RAM wieder freigegeben wird. Das bedeutet jedoch keineswegs, dass das OS einer Anwendung einen bereits zugeordneten RAM-Bereich eigenständig auch wieder minimieren kann ohne die Anwendung dabei im schlimmsten Fall komplett zum Absturz zu bringen. 😉
Sprich, bitte nicht Birnen mit Äpfel verwechseln, danke.

Das kann man auch daran erkennen, dass das BS in der Lage ist, Speicherinhalte auf die Festplatte auszulagern. So, und nu?

Ja, das Memory-Management von Windows kann die Nutzung des RAM's ein Stückweit steuern, was aber nicht bedeutet, das das OS mit dem RAM und vor allem dem bereits zugeordneten, jederzeit machen kann was es möchte.

BTW: In der gesamten Literatur wird bei der Unterscheidung zwischen entziehbaren und nicht entziehbaren Ressourcen das RAM als Beispiel für ersteres genannt.

Na ja, das OS kann theoretisch schon die entsprechende Anwendung/Treiber fragen/anweisen, ob diese von dem bereits zugeordneten RAM wieder etwas abgeben kann. Der entsprechende Anwendung/Treiber muss dieser fragen/anweisen jedoch nicht wirklich folge leisten.

Wie gesagt: Lass gut sein. Du verlässt Dich auf Deine Erfahrungen und Dein Xing-Profil. Ich auf Wissen.

Ähm, ja ich kann zum Glück neben meinem theoretischen Wissen, auch auf eine ganze Menge praktisches Wissen, sprich Erfahrung zugreifen. 😎

Ähm ja und zu dem Punkt mit "In der gesamten Literatur" und so ... die habe ich soeben von der unter MS-Flagge segelnden AI/KI auch mal durchsuchen lassen und die meint zu deiner Aussage das folgende.

copilot - minimize ram
😉

Gruss Alex
erikro
erikro 22.07.2024 um 12:35:05 Uhr
Goto Top
Moin,

Zitat von @MysticFoxDE:
ähm, damit minimierst du OS-Seitig nicht wirklich den einer Anwendung oder einem Treiber zugeordneten RAM, sondern schiesst nur stumpft den ganzen Prozess ab

Und wie geht das?

und was dabei mit der entsprechenden Anwendung oder Treiber dann passiert, ist dir hoffentlich auch bewusst. 🤨

Sie werden beendet. Und?

Das geht so ohne weiteres, weil das BS über das VMM Herr über den Speicher ist und sonst niemand.

Wenn du hart einen Task abschiesst, dann ist das ganz normal, dass dessen zugeordneter RAM wieder freigegeben wird. Das bedeutet jedoch keineswegs, dass das OS einer Anwendung einen bereits zugeordneten RAM-Bereich eigenständig auch wieder minimieren kann ohne die Anwendung dabei im schlimmsten Fall komplett zum Absturz zu bringen. 😉

Habe ich irgendwo geschrieben, dass das zwangsweise Entziehen des RAM keine Auswirkungen auf die Funktionalität des Programms hat? Deshalb wird das OS auch immer höflich beim Prozess anfragen, ob der Speicher freigegeben werden kann. Wenn sich das Programm aber weigert oder nicht antwortet, kann das OS sehr wohl den Speicher zwangsweise entziehen.

BTW: Versuche doch einmal unter einem BS, das keine Speicherverwaltung hat, den Prozess zu schließen, der nicht mehr reagiert. DOS wäre so ein System. Huh! Das konnte Prozesse nicht beenden. Warum nicht? Weil es nicht Herr über das RAM war.

Sprich, bitte nicht Birnen mit Äpfel verwechseln, danke.

Das ist Deine Spezialität. Du hast mich gefragt, wie ich den Speicher einer Anwendung entziehe. Du hast eine mögliche Antwort bekommen. Es gibt aber noch mehr.

Das kann man auch daran erkennen, dass das BS in der Lage ist, Speicherinhalte auf die Festplatte auszulagern. So, und nu?

Ja, das Memory-Management von Windows kann die Nutzung des RAM's ein Stückweit steuern, was aber nicht bedeutet, das das OS mit dem RAM und vor allem dem bereits zugeordneten, jederzeit machen kann was es möchte.

Doch, kann es. Es tut es aus guten Gründen nicht ohne Vorwarnung (Anfrage beim Prozess, Speicher freizugeben). Aber es kann es.

BTW: In der gesamten Literatur wird bei der Unterscheidung zwischen entziehbaren und nicht entziehbaren Ressourcen das RAM als Beispiel für ersteres genannt.

Na ja, das OS kann theoretisch schon die entsprechende Anwendung/Treiber fragen/anweisen, ob diese von dem bereits zugeordneten RAM wieder etwas abgeben kann. Der entsprechende Anwendung/Treiber muss dieser fragen/anweisen jedoch nicht wirklich folge leisten.

Und dann kann das System sagen: Mir egal. Ich entziehe Dir den Speicher trotzdem.

Wie gesagt: Lass gut sein. Du verlässt Dich auf Deine Erfahrungen und Dein Xing-Profil. Ich auf Wissen.

Ähm, ja ich kann zum Glück neben meinem theoretischen Wissen, auch auf eine ganze Menge praktisches Wissen, sprich Erfahrung zugreifen. 😎

Und? Sch*vergleich? Bei mir sind es mittlerweile 32 Jahre Praxis und Theorie. Davon ca. 25 Jahre als Dozent für genau diese Themen.

Ähm ja und zu dem Punkt mit "In der gesamten Literatur" und so ... die habe ich soeben von der unter MS-Flagge segelnden AI/KI auch mal durchsuchen lassen und die meint zu deiner Aussage das folgende.

copilot - minimize ram

Genau lesen! Da steht, es gibt keine
direkte** Möglichkeit. Das heißt, mit Bordmitteln kann ich das auch als Admin nicht beeinflussen, was Windows da so tut. Es gibt aber durchaus Tools von Drittanbietern, mit Hilfe derer das möglich ist. Eins, das mir spontan einfällt, wäre der Wise RAM-Cleaner (oder so ähnlich). Dass man mit solchen Tools auch ganz schnell Anwendungen abschießen kann, ist durchaus richtig. Aber es geht. Was anderes habe ich auch nie behauptet.

Liebe Grüße

Erik
erikro
erikro 22.07.2024 um 15:13:01 Uhr
Goto Top
Zitat von @MysticFoxDE:

copilot - minimize ram
😉

Tja, den Spaß habe ich mir auch mal gemacht und "mein" Copilot meint dazu:

In Windows wird der Arbeitsspeicher (RAM) dynamisch verwaltet, um die Leistung des Systems zu optimieren. Wenn ein Prozess RAM benötigt, weist das Betriebssystem diesem Prozess Speicher zu. Wenn jedoch der verfügbare Arbeitsspeicher knapp wird, kann Windows entscheiden, Speicher von Prozessen zu entziehen, die ihn nicht aktiv nutzen. Dies geschieht durch einen Mechanismus namens "Memory Management"

und weiter:

Der Task-Manager ist ein nützliches Werkzeug, um zu sehen, welche Prozesse wie viel Speicher verbrauchen und um Prozesse zu beenden, die zu viel RAM beanspruchen. Darüber hinaus gibt es Skripte und Tools, die dabei helfen können, den Arbeitsspeicher zu leeren und die Systemleistung zu verbessern. Es ist jedoch wichtig, solche Eingriffe mit Vorsicht zu genießen, da sie die Stabilität des Systems beeinträchtigen können.
MysticFoxDE
MysticFoxDE 22.07.2024 aktualisiert um 18:07:17 Uhr
Goto Top
Moin @erikro,

Und wie geht das?

siehe deine eigene Beschreibung mit Taskmanager rechte Maustaste und so. 😉

Sie werden beendet. Und?

Nix und denn zwischen hart beenden und gezielt dem bereits zugeordneten RAM minimieren, besteht glaube ich ein kleiner Unterschied. 🤨

Habe ich irgendwo geschrieben, dass das zwangsweise Entziehen des RAM keine Auswirkungen auf die Funktionalität des Programms hat? Deshalb wird das OS auch immer höflich beim Prozess anfragen, ob der Speicher freigegeben werden kann. Wenn sich das Programm aber weigert oder nicht antwortet, kann das OS sehr wohl den Speicher zwangsweise entziehen.

Ja, indem es so wie in deinem eigenen Beispiel den Prozess einfach hart killt und das ist +- seine einzige Möglichkeit. 🙃

Das ist Deine Spezialität. Du hast mich gefragt, wie ich den Speicher einer Anwendung entziehe. Du hast eine mögliche Antwort bekommen. Es gibt aber noch mehr.

Ich habe dich genaugenommen gefragt, wie du einen Teil eines bereits zugeordneten Hauptspeichers OS Seitig wieder freikratzen möchtest und nicht wie du gleich den gesamten zugeordneten RAM wieder haben kannst. Sprich, das eine ist ein Apfel und das andere eine Birne. 😉

Und damit du die Kurve auch wieder hinbekommst, sollten wir vielleicht zu dem Ursprung zurückgehen, sprich, SQL Server hat sich den Grossteil des RAM’s gekrallt, weil er per Default sämtliche verfügbaren RAM Ressourcen haben darf und nun kommt das OS oder ein anderer Task und möchte auch noch etwas RAM haben und zwar den physikalischen und nicht nur den logischen (ja, ein Task kann dem OS sehr wohl sagen, dass dieses seine RAM Anforderung nicht auslagern darf). So und wie genau stellt das OS das nun an, ohne den SQL-Server gleich hart zu beenden?

Spar dir sie Suche, denn entweder schafft das Windows in einem bestimmten Zeitraum die Anforderung zu bedienen, in dem es z.B. einen Teil des StandBy Caches löscht, welchen es vollständig selbst verwaltet, was jedoch zu einer Ausführungsverzögerung führt, weil das flushen vom bereits belegtem RAM, eben auch etwas Zeit kostet oder es kann diese Anforderung nicht mehr bedienen und dann kann die anfordernde Applikation mit dem auskommen was sie bereits bekommen hat oder sich auch gerne mal aufhängen.

Ja, das Memory-Management von Windows kann die Nutzung des RAM's ein Stückweit steuern, was aber nicht bedeutet, das das OS mit dem RAM und vor allem dem bereits zugeordneten, jederzeit machen kann was es möchte.

Doch, kann es. Es tut es aus guten Gründen nicht ohne Vorwarnung (Anfrage beim Prozess, Speicher freizugeben). Aber es kann es.
Und dann kann das System sagen: Mir egal. Ich entziehe Dir den Speicher trotzdem.

Ja, das OS kann schon den entsprechenden Prozess Killen um an dessen RAM wieder zu kommen, das ist jedoch nicht wirklich professionelles Ressourcen-Management, sondern lediglich brachiale Gewalt. 😔

Bei mir sind es mittlerweile 32 Jahre Praxis und Theorie. Davon ca. 25 Jahre als Dozent für genau diese Themen.

Ähm, als Dozent sammelt man nicht wirklich praktische Erfahrung, sondern lehrt eher das was man bis dato selbst gelernt hat, daher kannst du diese Zeit auch nicht wirklich als praktische Erfahrung anrechnen.

Genau lesen! Da steht, es gibt keine direkte Möglichkeit. Das heißt, mit Bordmitteln kann ich das auch als Admin nicht beeinflussen, was Windows da so tut. Es gibt aber durchaus Tools von Drittanbietern, mit Hilfe derer das möglich ist. Eins, das mir spontan einfällt, wäre der Wise RAM-Cleaner (oder so ähnlich). Dass man mit solchen Tools auch ganz schnell Anwendungen abschießen kann, ist durchaus richtig. Aber es geht. Was anderes habe ich auch nie behauptet.

Ach, du bist schon putzig … ich verweise hier selber vor gut einem Duzend Posts auf RAMMap und du kommst mir nun mit so einem 0815 Murks wie den Wise RAM Optimizer um die Ecke. 🙃

By the Way, ich habe schon mit 13 Jahren, also vor über 30 Jahren, Spiele selber optimiert, ja ... OK ... eher übel gecheatet, indem ich die entsprechenden Parameter, wie z.B. Geldstände oder Kämpfer-Attribute direkt im RAM überschrieben/erhöht habe. 🙃

Sprich, der RAM und ich sind schon sehr lange gute Buddies. 🤪

Gruss Alex
MysticFoxDE
MysticFoxDE 22.07.2024 um 18:38:25 Uhr
Goto Top
Moin @erikro,

Tja, den Spaß habe ich mir auch mal gemacht und "mein" Copilot meint dazu:

ich hätte vielleicht vorher noch erwähnen sollen, dass ich auch einen AI-Ausbilder-Schein habe. 🤪

bing-lehrstunge-01

Ja, mein deutsch ist etwas gruselig am Anfang ... 😬 ... ist aber auch keine Deutsch-Stunde und die AI hat meine Frage ja dennoch verstanden. 😁

OK, weiter geht's ...

bing-lehrstunge-02

... 🙈 ... 😔 ...

bing-lehrstunge-03

... 😡 ...

bing-lehrstunge-04

... na also, geht doch liebes BING. 🤪

Gruss Alex
MysticFoxDE
MysticFoxDE 23.07.2024 um 07:51:05 Uhr
Goto Top
Moin @Simon1979,

sorry, dass wir deinen Post etwas zerfleddert haben ... so ist jedoch das ITler Leben mitunter auch, sprich, 5 ITler = 25 Meinungen. 🤪

Wie sieht es eigentlich mit deinem Problem aus?
Hast du dir die RAM Belastung durch das Standby-Memory bei deinem SQL mal genauer angesehen?

Gruss Alex
erikro
erikro 23.07.2024 um 08:55:41 Uhr
Goto Top
Moin,

Zitat von @MysticFoxDE:

Bei mir sind es mittlerweile 32 Jahre Praxis und Theorie. Davon ca. 25 Jahre als Dozent für genau diese Themen.

Ähm, als Dozent sammelt man nicht wirklich praktische Erfahrung, sondern lehrt eher das was man bis dato selbst gelernt hat, daher kannst du diese Zeit auch nicht wirklich als praktische Erfahrung anrechnen.

Entschuldige, dass ich mich ungenau ausgedrückt habe. Unter anderem als Dozent. Ist aber auch egal.

By the Way, ich habe schon mit 13 Jahren, also vor über 30 Jahren, Spiele selber optimiert,

Und? Vor 30 Jahren war ich schon fast drei Jahre Systemadministrator.

Und die KI (welche auch immer) ist schon ein lustig Ding. Ich habe mal diese Frage gestellt:

Kann Windows einem Prozess Teile des Arbeitsspeichers wieder entziehen, ohne dass der Prozess abstürzt.

Und insgesamt fünf Mal auf "Generieren" geklickt. Dreimal lautete die Antwort "Ja" und zweimal "Nein". Hmmmmmm, vielleicht doch nicht so intelligent die KI. face-wink Wenn man nur genug Geduld hat, dann liefert sie auch die gewünschten Antworten. face-wink

Liebe Grüße

Erik
ukulele-7
ukulele-7 23.07.2024 um 09:16:24 Uhr
Goto Top
Wie sieht es eigentlich mit deinem Problem aus?
Hast du dir die RAM Belastung durch das Standby-Memory bei deinem SQL mal genauer angesehen?

Ich glaube nicht, das der OP das hier noch verfolgt. Falls der OP noch mitließt, würde mich interessieren, ob ohne Auslagerungsdatei die OS Performance vielleicht besser ist. Ansonsten kann er den SQL RAM ja leicht eingrenzen.

Aber ich fürchte, ich bin der Einzige, der euren Schwanzvergleich noch beiwohnt. Wenn ihr euch mal IRL trefft dann tut euch gefälligst gegenseitig ein Bier aus. Aus meiner Sicht ist eigentlich alles gesagt zu dem Thema, die KI kann es aber sicherlich nochmal mit mehr Worten wieder geben.
MysticFoxDE
MysticFoxDE 23.07.2024 um 09:37:27 Uhr
Goto Top
Moin @ukulele-7,

Falls der OP noch mitließt, würde mich interessieren, ob ohne Auslagerungsdatei die OS Performance vielleicht besser ist.

das ist mittlerweile keine gute Idee, denn das mag Windows selbst überhaupt nicht, weil es dann bei einer höheren RAM Anforderung für seine eigenen Prozesse nirgends mehr Ausweichen kann, sobald es selbst den physikalischen RAM durch das blöde Blockcaching/Standby-Memory vollgeballert hat. 😔

Aber ich fürchte, ich bin der Einzige, der euren Schwanzvergleich noch beiwohnt. Wenn ihr euch mal IRL trefft dann tut euch gefälligst gegenseitig ein Bier aus.

Aber selbstverständlich, zumindest von meiner Seite, ich bin zwar manchmal etwas bissig, aber nicht wirklich Nachtragend, vor allem nicht beim Thema IT! 🤪
Und nach dem Bier würden wir uns irgendwie auch bestimmt einig werden, spätestens nach dem zweiten oder dritten. 😁

Gruss Alex
MysticFoxDE
MysticFoxDE 23.07.2024 um 20:49:19 Uhr
Goto Top
Moin @ukulele-7,

Aber ich fürchte, ich bin der Einzige, der euren Schwanzvergleich noch beiwohnt.

so, jetzt nochmals kurz zu dem "Schwanzvergleich" um den es mir übrigens überhaupt nicht geht sondern eher um ein korrektes Verständnis eines Wichtigen jedoch leider sehr komplexen Themas! 😔

Und so wie @erikro das Memory-Handling von Windows beschrieben hat, ist es meiner Erfahrung nach nicht ganz richtig. Natürlich besteht auch die Möglichkeit, dass wir schlichtweg an einander vorbeireden und oder uns gegenseitig missverstanden haben.

Daher versuche ich folgend grob/sehr vereinfacht, anhand ein paar Beispielen mal zusammenzufassen, wie das RAM-Handling von Windows meiner Erfahrung nach aktuell funktioniert.

Bsp. 1.
Nehmen wir an, dass du auf einem Server 12GB freien RAM hast. Den ganzen Mist mit Standby & Co würde ich bei diesem Beispiel auch aussen vor lassen. Nun startest du auf diesem Server einen Prozess A, sagen wir mal den SQL-Server und dieser schnappt/reserviert sich beim OS 6GB RAM, dann startet als nächstes der Webserver und möchte auch 6GB RAM haben, wodurch der ganze freie RAM nun aufgefressen ist.

Wenn nun der SQL-Prozess sagen wir mal 1GB mehr RAM haben möchten, dann kann das OS nicht wirklich hergehen und beim Webserver-Prozess dieses 1GB wegnehmen und es dem SQL-Prozess zuordnen.

Dem Memory-Management im OS bleiben in einem solchen Fall eigentlich nur folgende Möglichkeiten übrig.

Als erstes versucht das OS Speicherbereiche im physikalischen RAM, auf die von eigenen Anwendungen oder auch die von Drittanwendungen länger nicht mehr zugegriffen wurde in den virtuellen RAM auszulagern, sprich auf das Pagefile zu schreiben und bedient durch den dadurch frei werdenden physikalischen RAM dann die Mehranforderung des SQL-Prozesses.

Wenn der Anwendungsprozess bei seiner Anfrage dem Memorymanagement nicht explizit mitgeteilt hat, dass es seine Anforderung nur über den physikalischen RAM bedienen soll, dann kann das OS diese Mehranforderung bei Mangel an physikalischem RAM auch direkt, Teilweise oder vollständig über den virtuellen RAM bedienen. Wenn das jedoch geschieht, dann kann man der Performance der entsprechenden Anwendung meisten gleich auch bye bye sagen.

Und wenn weder physikalisch noch virtuell freier RAM verfügbar ist, dann wird die Anforderung schlichtweg abgewiesen.


Bsp. 2
Nehmen wir hierfür doch das Problem vom TO.

Der Server vom TO hat, wenn ich das richtig sehe 16G und wenn dieser neu gestartet ist, dann ist zuerst sowohl die RAM-Reservierung/Verbrauch des SQL's sehr moderat und auch der Block-Cache/StandbyMemory des Windows ist noch leer in dem dieses so gut wie alle Leseanforderung gegen die lokalen Datenträger zwischenspeichert.

Wenn nun die User gegen diesen Serverarbeiten, dann wächst beim Benutzen des SQL-Servers ständig dessen RAM-Bedarf und beim Benutzen des SMB-Servers, sprich der Freigaben, wird die RAM-Belegung durch das Standby-Memory auch immer höher und solange noch genug freier RAM verfügbar ist läuft sowohl der SQL als auch der SMB-Server mit normaler Leistung.

Sobald jedoch der freie RAM entweder durch den SQL Server und oder dem Standby-Memory komplett aufgefressen wurde, fällt die Leistung sowohl vom SQL-Server als auch vom SMB-Server in den Keller.

Denn wenn dann der SQL-Server mehr RAM bei OS haben möchte, muss dieses zuerst z.B. einen Teil des Standby-Memory löschen, weil die Anforderung des SQL-Servers höher priorisiert ist und das dauert halt eben einen guten Augenblick länger, als wenn diese sofort aus dem freien RAM bedient wird.

Und wenn du bei einem bereits vollen RAM den SMB-Server benutzt, dann muss das OS zuerst einen Teil und zwar den ältesten des StandBy-Memory/Caches löschen, bevor es in diesen die neuen Daten zwischenspeichern/cachen kann und das dauert eben auch seine Zeit und sorgt dadurch ebenfalls für eine zum Teil sehr deutliche Verlangsamung des SMB-Servers.

Zusammenfassend:
Eigentlich müsste das Windows und sein Memory-Management dafür sorgen, dass ein Teil des RAM’s immer frei bleibt, damit es diesen bei Bedarf auch so schnell wie möglich zuordnen kann, sprich, so effektiv und schonend wie möglich mit den zur Verfügung stehenden RAM-Ressourcen umgehen.
In der Praxis geschieht mittlerweile jedoch genau das Gegenteil, denn anstelle den RAM schonend zu benutzen, ballert ein aktuelles Windows diesen selbst mit unnützen Dingen voll und verwaltet sich damit dann auch noch halb zu Tode. 😭

Du kannst dieses Schlamassel übrigens ganz einfach selber nachtesten. Kopiere einfach mit dem Windows Explorer eine Datei die deutlich grösser ist wie der freie RAM der Workstation/des Servers von einer Stelle auf eine andere oder per SMB auf eine andere Maschine, und beobachte dabei die RAM-Auslastung im Taskmanager. Und sobald beim Kopieren dieser Datei, der RAM durch das Standby-Memory vollständig verbraucht wurde, bricht sofort die Kopiergeschwindigkeit herunter. 😔

Das Lustige ist, wenn du den gleichen Kopiervorgang ohne das Caching ausführst, was z.B. mit xcopy oder robocopy mit dem Parameter „/j“ möglich ist, dann läuft dieser zum einen viel schneller als der „gecachte“ über den Explorer, bricht auch nicht mitten beim Kopieren immer wieder ein, da kein Cache oder voller RAM gehandelt werden muss und verbraucht dabei auch noch viel weniger Ressourcen und zwar natürlich RAM aber auch CPU technisch.

So, jetzt muss ich aber die DS4000U weiter quälen, sprich noch etwas genauer durchtesten. 🤪

Gruss Alex