Ich habe einen Windows 2003-Server, der etwas langsam läuft, wobei die Festschreibungsgebühr und die Auslastung der Auslagerungsdateien immer höher werden, bis ich schließlich neu starte. Um dies zu beheben, muss ich herausfinden, was den gesamten Speicher verbraucht, und hier liegt das große Rätsel.
Aktuelle Statistiken aus dem Task-Manager:
Physical Memory (K): 2096400
Commit Charge (K): 5364848
Page file usage: 5.11 GB
Gut , also rufen wir den SysInternals Process Explorer auf und überprüfen die Größe des Arbeitssatzes für alles, was ausgeführt wird. Der größte Schuldige ist eine Tomcat-Instanz mit 121.980 KB WS und 481.284 KB VM-Größe. Nichts dort kommt der Erklärung der 5-GB-Festschreibungsgebühr nahe.
Nächster Schritt: SysInternals pslist : pslist -mspaltete die Ausgabe von Spalte und berechnen Spaltensummen für die 61 Prozesse bis die gemeldet werden.
SUM (Working Set) : 681,484 K
SUM (Private Bytes): 593,424 K
Verstehe ich grundlegend, was die Tools melden? Ich hatte immer den Eindruck, dass ein Betriebssystem tatsächlich viel weniger Speicherplatz beanspruchen würde als die gesamte Menge an virtuellem Speicher, die von einem Prozess zugeordnet wird, unter der Annahme, dass es tatsächlich nie so viel verwendet, und dass dies bei der Betrachtung von VM der Fall ist ein roter Hering.