NEWS
Hoher RAM Verbrauch ioBroker unter Windows
-
Bitte haltet mich auf Windows bezgl. RAM und CPU-Verbrauch von wmiprvse.exe und vor allem bzgl. der Anzahl von WMIC.EXE-Prozessen auf dem Laufenden.
Testet bitte auch, was mit dem CPU und RAM-Verlauf passiert wenn der Info-Adapter deaktiviert oder die Intervallrate für alle Counter im Info-Adapter auf 0 steht.
Danke.
-
Ich kann die obigen Plots gerne weiterführen und ggf ergänzen.
Nutze dazu den Info-Adapter, der dann aber auch läuft. Habe die Abtastzeiten auf max = 10 Sekunden gestellt und logge nur bei signifikaten Änderungen. So bleibt Prozessorlast und Datenaufkommen angemessen.
Zu WMI* habe ich im Task Manager nur WMI Providerhost (0 bis 3%) und ein ab und an aufblitzendes WMI Befehlszeilendienstprogramm gesehen.
Brauche ich ein anderes Logging-Tool? -
Wenn es sich so verhält, ist alles ok. Dann brauchst Du nicht weiter forschen.
Ich hatte bei mir in der Vergangenheit mehrfach Fälle, wo wmic.exe-Prozesse sich nicht mehr beendet haben und auch entsprechende consolehost.exe-Prozesse stehen geblieben sind. Dann war nach einiger Zeit der Rechner extrem langsam. Aber dafür scheint es Auslöser zu geben. Z.B. defekte Hardware, Treiberprobleme, RAM-Fragmentierung, ...
Ich habe die Vermutung, dass der Infoadapter aufgrund der relativ hohen Frequenz von WMI-Abfragen (ca. knapp 200 Events alle 15s) da selbst auf betroffenen Systemen Auslöser sein kann.
Mal sehen.
-
@Stabilostick Ja, finde die Abfragefrequenz für eine normale Routineüberwachung auch etwas paranoid. Aus meiner Sicht reicht etwas im Minutenbereich für die Routineüberwachung aus. Wenn etwas richtig - also länger andauernd - schief geht, dann merkt man das auch noch bei etwas trägerer Aufzeichnung. Für die Suche von kurzzeitigen Spikes o.ä. mag die schnellere Abfrage und Aufzeichnung ihre Berechtigung haben. Aber das sind Spezialfälle.
Das viele Loggen vom info und vom systeminfo-Adapter waren wohl auch die Ursache für die überlastinduzierten Instabilitäten bei meinem OPi.
Mein i5 wird jetzt wohl nicht so schnell in die Knie gehen. Aber wenn jemand einen NUC mit Atom hat und noch eine ordentliche Grundlast durch andere Win-Anwendungen, dann könnte das auch schon mal zu Problemen kommen. -
@Stabilostick sagte in Hoher RAM Verbrauch ioBroker unter Windows:
Bitte haltet mich auf Windows bezgl. RAM und CPU-Verbrauch von wmiprvse.exe und vor allem bzgl. der Anzahl von WMIC.EXE-Prozessen auf dem Laufenden.
Danke.@Stabilostick Ich hatte seit gestern abend nur noch meinen 8 GByte RAM Riegel im Server, welcher dort schon seit längerer Zeit ohne Probleme werkelt. Innerhalb von etwas mehr als 12 Stunden war der komplette RAM belegt und die CPU wieder im Grenzbereich von 80 bis 100%.
Ich versuche gerade auf den Server zu kommen, es sieht aber nicht gut aus. Bei den ganzen letzten Malen hat wmiprvse.exe ca. 30% an CPU Last verbraucht. Das ganze System reagiert gerade so schwerfällig, dass es schwer ist die genaue Anzahl zu zählen. Bei 50 WMIC.exe hab ich jetzt mal aufgefhört zu zählen.
Ich werde heute abend mal ein paar Tests über meine RAM Bausteine laufen lassen.
Was könnte denn die Ursache dafür sein, dass es so viele WMIC Prozesse sind. Es scheint ja nicht normal zu sein. -
Wenn ich @Stabilostick richtig verstanden habe, wäre es interessant, den Info Adapter zu deaktivieren und dann neu zu starten. Prüfen, ob der Info Adapter immer noch aus ist und von Zeit zu Zeit den Rechner manuell prüfen.
Du kannst die Prozessorlast auch indirekt remote prüfen. CoreTemp prüft die Temp und speichert das in ein Log. Ich lasse alle 5 Sekunden die Temp messen und alle 30 Sekunden in ein csv file schreiben. Diese Datei hole ich mir dann über Dateizugriff und schaue sie mit mit libreoffice auf meinem Office-Rechner an. So muß nicht so oft remote verbinden, was ja extra Last erzeugt und die Messung verfälscht. Und es geht recht stabil und ressourenschonend. -
@klassisch Das werde ich machen, wenn die RAM Tests durch sind.
-
So sieht es mittlerweile bei mir aus:
Die Garbage Collection scheint bei Bedrf stattzufinden. War heute mit UltraVNC drauf, hab etwas nachgeschaut und Defender aktualisiert. Das hat wieder etwas Last erzeugt und er hat dann Speicher freigeräumt.
Alles läuft normal, keine WMI* Auffälligkeiten.
Meine rechenzeitdominante Parallelapplikation braucht am Teg mehr Rechenleistung als nachts, was man bei der Prozessorauslastung auch schön sieht.
Bei meinen Einstellungen bringen die Prozessolastdaten ca. 550kByte/Tag und die Memory-Daten ca. 120kByte / Tag bei.
Werde die Prozessordaten durch Erhöhen der Aufzeichnungsdeltas noch etwas ausdünnen. -
Meine Speichertests mit dem Tool memtest86 sind durchgelaufen.
Test-1
Ich hab einmal meinen alten 8 GByte Riegel drin gehabt, wo der Test keine Fehler festgestellt hat
Mit diesem 8 GByte Riegel hat sich das System so verhalten wie ich es im Beitrag vom 18. Aug. 2019, 19:14 beschrieben habe.Test-2
Ich hab die beiden identischen 8 GByte Riegel eingebaut und memtest86 lief wieder ohne Fehlermeldungen durch. Das Verhalten mit diesen beiden Riegeln hatte ich am 16. Aug. 2019, 23:08 beschrieben.Wenn ich nur den neuen 8 GByte RAM Riegel in den Server einsetze startet Windows gar nicht erst Komischerweise stehen mir die 15,6 GByte RAM zur Verfügung, wenn beide Riegel verbaut sind.
Eine logische Erklärung habe ich dafür nicht.
Angenommen der neue Riegel hat eine Macke, dann hab ich trotzdem Probleme mit meinem System, wenn der alte 8 GByte RAM Riegel verbaut ist.Im nächsten Schritt werde ich dann mal den Info Adapter deaktivieren und schauen was dann bei mir passiert.
-
Vor dem Neuaufsetzen von Windows steht meiner Meinung nach noch ein Experiment aus:
- Rechner mit dem alten 8GB RAM-Riegel aufbauen. So wie es mal stabil lief
-ioBroker starten - info-Adapter deaktivieren
- CPU-Leistung beobachten
Aus der Github-Beschreibung des Info-Adapters schließe ich:
Der Info-Adapter nutzt die WMI*-Prozesse für seine HW-Abfragen.
Bei Deinem N3050 scheinen sich die zu türmen, also schneller rein zu kommen als sie abgearbeitet werden können. Deshalb arbeitet der arme Celeron unter Volldampf ohne Aussicht auf Erfolg - das gibt es manchmal auch im richtigen Leben.
Die RAM-Verbrauchskurve Deines i7 Laptops würde mich noch nicht nervös machen - solange die CPU-Belastung im Rahmen bleibt und nicht kontinuierlich ansteigt. (RAM) Aufräumen kostet Kraft und Zeit (wie im richtigen Leben), deshalb scheint Win das Aufräumen nur bei Bedarf zu machen. Solange die Rechenleistung nicht ansteigt, beunruhigen die RAM-Kurven erst mal nicht.
Also bei Deinem N3050 System erst mal den info-Adapter deaktivieren und schauen wie sich die Sache entwickelt. - Rechner mit dem alten 8GB RAM-Riegel aufbauen. So wie es mal stabil lief
-
@klassisch Hallo klassisch, ich hatte meinen Beitrag nach der Veröffentlichung nochmal überarbeitet, da mir auch einfiel, dass die Messung ohne Info Adapter noch offen ist. Ich habe gestern Nacht den Infoadapter deaktiviert und werde jetzt die nächsten 24h einmal abwarten und schauen, wie sich das System verhält.
-
@Feuersturm sorry, das Editing hatte ich nicht bemerkt. Hatte den Beitrag in der Nacht zwar gelesen, habe mich aber erst heute morgen zur Antwort rangesetzt.
Bin jedenfalls gespannt, ob das Abstellen des info-Adapters hift. In der github Beschreibung des Adapters werden die WMI* Prozsse explizit erwähnt. Allerdings in Umfeld von Themen mit Zugriffsrechten; wenn z.B. gar keine Werte angezeigt werden. Und in einer MS Beschreibung zu den WMI Prozessen steht, daß man damit an HW-Informationen kommt. Deshalb nehme ich an, daß diese Prozesse vom Adapter ausgelöst werden.
Der Adapter bietet anscheinend auch die Möglichkeit, das Laden der aktuellen Systemdaten zu unterdrücken.
Wenn Dein Test mit dem komplett deaktivierten info Adapter erfolgreich sein sollte (= keine CPU Überlast mehr), könnte das der nächste Schritt sein. Zumindest so lange, bis es eine gemäßigte Adapterversion mit längeren Zuriffsintervallen (als default) gibt. Aber das ist noch Zukunftsmusik.
Ansonsten gibt es bei mir auch noch eine Ungereimtheit mit dem Adapter. Ich bekomme viele Infos angezeigt - also kein Rechteproblem - aber keine Temp. Andere Tools können aber die Temp anzeigen. -
Die Ermittlung der Systeminformationen im Infoadapter beruht auf dem Paket https://github.com/sebhildebrandt/systeminformation
-
@klassisch sagte in Hoher RAM Verbrauch ioBroker unter Windows:
Bin jedenfalls gespannt, ob das Abstellen des info-Adapters hift.
Ich hatte in den letzten Tagen den Server mit 16 GB RAM bestückt und den info Adapter deaktivert mit folgendem Ergebnis:
Nach 2 Tagen und 18h Laufzeit waren 35 wmi Prozesse aktiv. Die CPU Auslastung betrug 100%. Die 16 GByte RAM waren zu 99% belegt. Der Prozess WMI Provider Host verursachte eine Prozessorlast zwischen 30 und 50%
Hierzu muss man aber auch sagen, dass ich parallel die Leistungsdaten mit dem Tool "perfmon" / "Leistungsüberwachung" aufgezeichnet habe. Ich vermute es hat einen ähnlichen Einfluss auf das System wie der info Adapter.Ich hatte danach den Server mit den alten 8 GByte RAM bestückt und den info Adapter komplett gelöscht. Leider wurde der Test durch eine Spannungsunterbrechung unterbrochen. Habe den Server heute wieder hochgefahren und werde einmal schauen, wie sich das System verhält. Aktuell laufen keine weiteren Analysetools. Aktueller Stand nach 10h Laufzeit CPU Auslastung im Durchschnitt 20%, RAM zu 59% belegt, Prozess WMI Provider Host ca. 10% CPU Auslastung
-
Bitte verwende das Tool „Process Explorer“ von Microsoft/Sysinternals, um herauszubekommen, welcher Prozess die WMIC-Prozesse gestartet hat. Außerdem kannst Du in den Aufrufdetails der WMIC-Prozesse sehen, welche WMI-Abfrage sie ausführen. Und viele mehr. Speicher und CPU-Verluf eines jeden Prozesses graphisch....
Auch der ioBroker js-controller startet IMHO alle ca. 10s WMIC-Prozesse.
Die 35 WMI-Prozesse sind das Problem. Ich wette, sie sind irgendwie „stecken“ geblieben und verursachen die 100% CPU-Last dann. (Z.B. In WMIPRVSE)
-
Hallo @Stabilostick, aktuell sieht es so aus
Wie komme ich zu den von dir genannten "Aufrufdetails"? Meinst du das Fenster "Properties" das sich öffnet, wenn ich einen Doppelklick auf den WMIC.exe Prozess mache?
Aktuell tauchen die WMIC.exe unter den einzelnen node.exe Prozessen auf und verschwinden nach ca. 1-2s wieder. -
Ja, die Properties meine ich. Da steht der Aufruf mit de Abfrage im ersten Fenster.
Das mit dem kurzen Auftauchen ist das normale Verhalten. Js-Controller und Adapter rufen WMIC regelmäßig auf. Die Ergebnisse stehen in der Expertenansicht in den Objects ich glaube unter system.adaper...load oder so ähnlich usw.
Die iobroker.exe ist der Dienstwrapper, der die erste Node.exe startet. Die führt die js-Dateien des js-Controllers aus. Darunter m Baum laufen dann die Node.exes der einzelnen Adapter.
Was nicht sein darf ist, dass die WMIC-Prozesse nicht verschwinden. Dann ist irgend etwas in Windows schief gegangen.
-
Ich habe jetzt seit knapp 2 Tagen eine neue ioBroker Instanz mit der Version iobroker-1.5.14.b-windows-installer.exe erstellt und gleich zu Beginn den Info Adapter komplett aus der frischen Software entfernt.
Der Server verhält sich tadellos. Nach knapp 2 Tagen betrieb sind jetzt 2,5 GByte RAM von 8 GByte belegt und die CPU Auslastung lieg bei 10 bis 20%.
Ich werde jetzt im nächsten Schritt einmal wieder den Info Adapter installieren und schauen ob sich etwas großartig verändert. -
@Feuersturm vielen Dank für die Rückmeldung! Freut mich daß das soweit funktioniert. Bin gespannt, wie sich der info Adapter auswirkt und ob er auf eine konservertive Parametrierung reagiert.
-
Wenn man auf der Einstellungsseite der info-Adapterinstanz einen Schieberegler auf 0 stellt, dann ist das entsprechende wmi-Polling abgeschaltet. Nichtsdestotrotz erfolgen weiter wmic-Aufrufe aufgrund des js-controllers und der einzelnen Adapter, jedoch in geringerer Aufruffrequenz.