NEWS
Node.exe 100% CPU
-
Ich habe nun mal ein js-controller update gemacht. Wenn es wieder auftritt werde ich wohl node.js downgraden müssen.
@apollon77 Der Node-Red Adapter. Alle paar Sekunden wird wohl kein Adapter neu gestartet werden. Und es taucht immer erst nach einigen Stunden auf und bemängelt dann immer den blockierten Port.
Danke
-
Naja dann musst Du rausfinden was noch auf 1881 läuft ... oder stoppe mal ioBroker und schau das alle Prozesse gestoppt sind und starte neu
-
js-controller update hat wohl geholfen. Bisher läuft es stabil ohne große CPU Auslastung.
Ich glaube nicht, dass irgendetwas anderes den Port 1881 nutzt. Vor allem war es beim 1880 gleich und beim Neustart des Adapters passt es ja immer für eine Weile.
-
Hi,
ich bin mit meinem System aus der Ubuntu VM ins native Windows 10 64 bit umgezogen und habe auch eine CPU Auslastung von fast dauerhaften 100%.
Der Prozess node.exe taucht 33 ! mal im Taskmanager auf.
Runtimebroker.exe 8 malAber komischerweise Opera auch 15x. Obwohl er nur 1x geöffnet ist.
Die node.exe Prozesse sind aber meist vorne mit dabei und dürften den Großteil der CPU Last ausmachen.
Beende ich iobroker (iobroker stop) beruhigt sich der CPU nach 1-2 Minuten auf 10-12%
-
Ok, Aktive Instazen 32 plus eine für den js-controller ergibt 33 Prozesse. Das passt. Der "Runtimebroker" hat mit ioBroker nichts zu tun.
Bei Opera oder Browsern haben teilweise eigene Tabs eigene Prozesse damit nicht alles abschmiert wen einer crasht.
Je nachdem was genau jetzt deine Adapter so alles machen müsstest Du schauen. in ioBroker hat jeder Adapterprozess unter "system.adapter.Name" einige Statistik-States (ggf musst Du Filter in der Objektansicht rausnehmen das Du die States siehst). Da siehst Du auch wieviel CPU jeder Prozess so braucht. So kannst Du den Lastverursachern auf die Schliche kommen.
Ingo F
-
Bei den Prozessen unter "system.adapter.name" steht überall "0.00 % of one core"
Aber ioBroker nutzt auf jeden Fall alle 4 Kerne aus, das sehe ich im Taskmanager.Habe jetzt mal alle Adapter deaktiviert ausser admin.
Dann läuft er super mit 15-20% CPU-Last.
Je mehr Adapter ich aktiviere (egal welche) desto mehr nimmt die Last zu.
Bei 20 zugeschalteten Adaptern schwankt er schon zwischen 50-80%
ab ca. 15 Adaptern steht konstant 100% an.Managed Windows das ganz so viel schlechter als Linux?
Als ioBroker noch in einer Ubuntu 18.04 VM unter Proxmox lief brauchte die gleiche ioBroker Instanz nur 20-30% CPU.Ich werde mal versuchen unter Windows eine Ubuntu VM laufen zu lassen und die Instanz dort zu installieren.
-
Ich habe Dir eine Chat-Nachricht wegen der CPU-Last geschrieben. Lass uns das zusammen ansehen.
-
Vorläufiges Ergebnis der Untersuchung zusammen mit @aleks-83:
System-Ausgangszustand
- NUC mit CPU Intel Celeron J3455 @ 1.50GHz
- Average CPU Mark: 2110
- Cores: 4, Typical TDP: 10 W
- 16GB RAM
- Software
- Windows 10
- Avast Antivirus
- Opera Webbrowser
- Etliches an kleinen Hilfsprogrämmchen im Hintergrund
- Java-Updater
- Buhl-Updater
- Unify
- ...
- ioBroker mit neuem Windows Installer installiert
- 32 Adapterinstanzen
- etwa 900 Ereignisse/15s im System, javascript hat alle abonniert
- zum Zeitpunkt der Prüfung wurden viele Ereignisse vom upnp-Adapter erzeugt. (etwa 500/15s)
- CPU schwankt zwischen 70% und 100% Last
CPU-Nutzung durch ioBroker
- ioBroker hat für den js-controller Node.js-Prozess mit den Datenbanken durchweg etwa 5% CPU benötigt.
- Jeder Adapter hat etwa 0,1-0,5% CPU verwendet.
- Alle 15s hat jeder Adapter einmal WMIC aufgerufen. Der Prozess hat dann für ca. 1s jeweils etwa 3-5% CPU genutzt
- Der WMIPRVSE-Prozess hat als Gegenstelle für die WMI-Abfragen hat ebenfalls etwa 2-5% CPU Last erzeugt
CPU-Nutzung durch Anwendungen und System
- Teamviewer 10-20%
- Opera 20-50% (wenn was gemacht wurde, sonst <5%)
- ProcessExplorer 10%
- Avast System Dienst 5%
- Desktop-Manager 3%, Java-Updater 1%, Buhl 0,5%, ......
Rechenspiele
Damit ergibt sich die Gesamtsystemlast für ioBroker zu:jscontroller + 32*Adapter + WMIC-Abfragen für 32 Instanzen mit jeweils 1s Dauer alle 15s
5% + 32*0,5 + (1s*32/15s) * 5% = ~30% im MaximumGesamtsystemlast pi mal Daumen hochgerechnet:
Prozess CPU-Last iobroker 30% im Maximum TeamViewer 15% Process Explorer 10% Avast Antivir 5% 30x irgendwelche kleinen Prozesse à 0,5% 15% ===== Summe 70% Opera zusätzlich mit Admin aufrufen 40% ===== Summe 110% Und das entspricht (trotz Milchmädchenrechnung) dem, was wir am laufenden System auch beobachtet haben.
Ergebnisse also für ioBroker-Server (mit kleiner CPU) auf Windows:
- Einen Rechner mit kleiner CPU mit TeamViewer fernzusteuern kostet locker 1/5 der Systemperformance.
- Auf dem Server mit kleiner CPU sollte man keinen Webbroswer aufgerufen. Wenn doch, verursacht er schnell 1/4 oder mehr CPU-Last und verlangsamt zusätzlich die Serverprozesse.
- Datenbankdateien oder Datenbankordner müssen unbedingt vom Virenscan ausgenommen werden, da der Virenscanner sonst übermäßig CPU-Ressourcen verbraucht. Auf Windows ist der eingebautet Defender zu bevorzugen wegen relativ geringer CPU-Last. Der aktuelle Window Installer trägt eine entsprechende Ausnahme in den Defender ein.
- Jede zusätzliche Anwendung im Hintergrund verbraucht (unnötig) CPU-Ressourcen. Deinstallieren.
- Den Prozess-Ausführungsmodus für dedizierte ioBroker-Server umstellen auf "Hintergrunddienste":
Und abschließend:
- Die Node.js-Prozesse und damit ioBroker ist hier nicht vorwiegend an der 100% CPU-Last verantwortlich. Haltet Eure Serversysteme schlank.
PS: Und wenn man kleine Linux-Systeme hernimmt und sagt, wie toll die doch sind:
Die haben i.d.R. kein grafische Benutzeroberfläche aktiv und führen keine Antiviren-Programme oder Webbrowser aus, kein Homebanking und keine Maustreiber von Logitech. Es liegt bei uns. - NUC mit CPU Intel Celeron J3455 @ 1.50GHz
-
Moin,
was für eine Zusammenfassung
Dir auch nochmal vielen Dank für die persönliche Hilfe und das gute Gespräch.Deine Beobachtungen kann ich so zu 100% unterschreiben.
Ich habe nach unserem Telefonat noch etwas ausprobiert und aufgeräumt.Insgesamt war es nicht der ioBroker selbst der die Maschine ausgelastet hat, sondern die Kombination aus ioBroker, TeamViewer, Opera und avast.
Was ja eigentlich keine ungewöhnlichen Tools sind auf so einer Maschine!?Ein, bei mir sehr großer Punkt war aber auch der Info Adapter.
Bei "aktuelle Systemdaten nicht lesen" war kein Haken gesetzt, und die Systemdaten wurden alle 3-10s gelesen.
Wenn ich diesen Haken gesetzt habe, wurde das System um bis zu 30% weniger belastet.
Ob das jetzt nur bei mit so ist, oder ob es ein Problem im Adapter ist, kann ich nicht sagen.Jetzt läuft das System bei 31 aktivierten Adaptern bei 25-30%.
Den TeamViewer nutze ich nur noch wenn nötig. Den hatte ich eigentlich genutzt um den Rechner komfortabler einrichten zu können und nicht immer im Wohnzimmer den TV zu blockieren wo der NUC dran hängt (zwecks Kodi). Ja, Kodi ist auch installiert, läuft aber nur bei Bedarf.
ioBroker konfiguriere ich dann nur noch von extern.
Avast habe ich deinstalliert und nutze wieder den Defender. -
Vielen Dank für die Beiträge. So sieht man mal die Lasten mit anderen Prozessoren.
Auch nach meiner Beobachtung / Erfahrung ist die Defaulteinstellung des sehr hilfreichen info-Adapters paranoid (subjektive Meinung). Das scheint auch der Kampf vom user @Feuersturm zu zeigen. Es wäre prima, wenn man das Update-Intervall noch etwas in den Minutenbereich hin ausdehnen könnte und das als Default wert einstellen könnte. Ich habe die Hürde zum Eintragen in die History durch großzügige Deltabedingungen erhöht. Im Normalbetrieb ist das noch Info genug, die Kurven sind etwas gröber aber normalerweise noch aussagkräftig.
Die Last durch info-Adapter und einen system-info Adapter hatte auch die Instabilitäten meines headless operierenden linuxbasierten Orange Pi Plus 2e ausgelöst.
Auf meinem i5 läuft noch eine deutlich intensivere Applikation parallel und ich komme auf eine Gesamtlast von 14% bis 30%. ioBroker ist der kleinste Anteil.
Immer noch aktuell; allerdings erst seit Win Update auf 1903: Wenn ich mit Remote Desktop auf dem Rechner war, dann den Remote Desktop schließe, geht die Prozessorast dramatisch hoch, was sich auch an der Temp bemerkbar macht. Wenn ich dann kurz mit UltraVNC drauf gehe und das wieder schließe ist alles wieder gut. Experimenteller Befund auf meinem System, Ursache sowie Übertragbarkeit der Beobachtung unklar. Hier also Vorsicht bzw. Augen auf.Gibt es eine einfache Möglichkeit, die gesamte ioBroker-induzierte Last zu erfassen? Ich sehe halt eine Vielzahl ununterscheidbarer ioBroker Prozesse im Taskmanager aufblitzen und muß dann schätzen oder raten.
-
@klassisch sagte in Node.exe 100% CPU:
Es wäre prima, wenn man das Update-Intervall noch etwas in den Minutenbereich hin ausdehnen könnte und das als Default wert einstellen könnte.
Dann legt dazu bitte ein GitHub Issue an. Nur solist sichergestellt das es der ENtwickler sieht und es auch nicht vergisst
-
@apollon77 sagte in Node.exe 100% CPU:
Dann legt dazu bitte ein GitHub Issue an. Nur so ist sichergestellt dass es der Entwickler sieht und es auch nicht vergisst
Danke für den Hinweis. Es gibt bereits einen ähnlichen issue
https://github.com/iobroker-community-adapters/ioBroker.info/issues/38#auf den ich geantwortet habe. Bin nicht so Git-virtuos und weiss nicht, ob das dem normalen Vorgehen entspricht; falls nicht kann ich einen neuen issue anlegen
[OT]
btw. Git issues: Welche Komponente verwaltet das Logfile? bei meiner Win Installation erhalte ich reproduzierbar immer beginnend nach einer Woche und bei jeder Auswahl eines Menuepunkte im Admin-Menue bzw. Aufruf des Admins selbst eine Fehlermeldung im log:Cannot check file: C:\Program Files\iobroker\ioBrMain2\log/iobroker.log.2019-09-01
Es kann also das Logfile, welches vor einer Woche angelegt wurde, nicht mehr bearbeitet werden. Die Datei ist mit dem TotalCommander noch sichtbar aber mit Notepad++ nicht mehr zu öffnen mit Hinweis auf Nichtexistenz.
Ich würde bei der entsprechenden Komponente einen issue anlegen
-
@klassisch hm ... also um Standard werden logfiles nach 7 Tagen gelöscht. Sicher das das file wirklich noch da ist?
-
@apollon77 sagte in Node.exe 100% CPU:
@klassisch Sicher das das file wirklich noch da ist?
Nun, das so eine Art Schrödingers Katze oder Zombi. Habe so etwas bei Win bisher noch nicht erlebt.
Total Commander zeigt die Date an (unten)
Dann Rechte Maustaste -> öffnen mit Notepad++ -> Notepad++ bringte folgende Fehlermeldung:
Das war schon mit dem alten Installer so und ist auch mit dem neuen Installer so. Hat keine dramatischen Auswirkungen, ist eher ein Schönheitsfehler. Aber wenn mans beheben kann wäre das nett.
Wenn ich ioBroker neu starte ist das weg - so ca. 7 Tage langMeine Systemkonfig
Betriebssystem Windows Architektur x64 CPUs 4 Geschwindigkeit 2295 MHz Modell Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz RAM 7.88 GB System Betriebszeit 00:00:22 Node.js v10.16.3 NPM 6.9.0 Anzahl der Adapter 254 Festplatte Größe 464.25 GB Festplatte frei 427.47 GB Betriebszeit 7 T. 02:40:38 Aktive Instanzen 19 Hostname DESKTOP-SECRET(ioBrMain2)
Cannot check file: C:\Program Files\iobroker\ioBrMain2\log/iobroker.log.2019-09-01
Man beachte auch den (un)eleganten \ / Umschwung.
-
Was hast Du denn am 1.9. gemacht, dass das Log >1MB ist?
Uuuuund...... ich hebe mal den Finger: bei mir heißen die Dateien
Bei Dir ist da was verdreht.
Die Log-Konfiguration steht in der Datei "....\iobroker-data\iobroker.json" und sieht bei mir so aus (Default-Werte):
[...] "log": { "level": "info", "maxDays": 7, "noStdout": true, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, [...]
Was hast Du da?
-
@Stabilostick sagte in Node.exe 100% CPU:
Was hast Du denn am 1.9. gemacht, dass das Log >1MB ist?
nix, wie fast jeder user, wenn das System nicht mehr funktioniert
. Vielleicht history-Abonnements etwas aufgeräumt, damit nicht so viele Daten geschrieben werden. Info-Adapter, Mercedes-me Adapter ein Autostart alle 48h zugefügt, ein paar Flots optimiert. Dabei wahrscheinlich Adapter neu gestartet. Und die Uptime von 7 Tagen läßt vermuten, daß dabei auch mal ioBroker neu gestartet wurde und damit history neu eingelesen. Irgendwas war auch mit den HM-Adaptern. Ach ja, habe in Homematic eine neue Systemvariable eingeführt und dazu die HM Adapter neu gestartet. Also ein wenig rumgefummelt.
Uuuuund...... ich hebe mal den Finger: bei mir heißen die Dateien
Bei Dir ist da was verdreht.
Die Log-Konfiguration steht in der Datei "....\iobroker-data\iobroker.json" und sieht bei mir so aus (Default-Werte):
[...] "log": { "level": "info", "maxDays": 7, "noStdout": true, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, [...]
Was hast Du da?
Irgendwie fehlen bei mir da die <LF> und auch sonst sieht das anders aus.
"log":{"level":"info","maxDays":7,"transport":{"file1":{"type":"file","enabled":true,"filename":"log/iobroker.log","maxsize":null,"maxFiles":null}}}
fileext fehlt komplett, ist in filename integriert.
Kann das von der alten Portierung Linux -> Win her kommen?Edit: Die JSON-Formatierung bekomme ich wieder hin, falls erforderlich. Gibts ein Notepad++ Plugin für.
Soll ich das File angleichen? Wahrscheinlich ioBroker zuvor anhalten, file ändern und dann neu starten. -
Das mit den LF ist egal. Aber ändere das mit dem fileext und dem filename. Die bestehenden Dateien werden dann wohl nicht automatisch gelöscht, aber für die neuen sollte alles passen.
Als Editor verwende ich auch gerne Visual Source Code. Ist kostenlos und von MS. Hat jede Menge Extensions für vieles.
PS: "fileext" wurde vor etwa 4 Jahren beim js-controller 0.0.6 eingeführt. Bei Dir fehlt der Eintrag ja. So alt ist Dein System schon?
-
@Stabilostick sagte in Node.exe 100% CPU:
Das mit den LF ist egal.
Habe nochmals nachgeschaut. Kam wohl durch das Update via Installer. In der alten Instanz passt das noch.
Aber ändere das mit dem fileext und dem filename. Die bestehenden Dateien werden dann wohl nicht automatisch gelöscht, aber für die neuen sollte alles passen.
Gut, gemacht. In einer Woche sehen wir weiter
Als Editor verwende ich auch gerne Visual Source Code. Ist kostenlos und von MS. Hat jede Menge Extensions für vieles.
Habe ich wohl auch noch auf der Platte meines Hauptrechners. Auf dem "Server" habe ich halt die mutmasslich schlanken Programme.
PS: "fileext" wurde vor etwa 4 Jahren beim js-controller 0.0.6 eingeführt. Bei Dir fehlt der Eintrag ja. So alt ist Dein System schon?
Hatte schon ccu.io und bin dann zu ioBroker migriert. Die liefen dann einige Zeit bei mir parallel. Ja, da sind sicher sehr viele Altlasten "Legacy" drin.
Vielen Dank!
-
[eigentlich OT, hatten wir hier aber schon mal angesprochen]+
Schrödingers Katze hat sich wieder angeschlichen:
Logfile[vorgestern] 2019-09-19 01:41:27.483 - info: info.0 Popup news was read... 2019-09-19 02:11:05.045 - info: host.DESKTOP-0UPK22M(ioBrMain2) Delete log file iobroker.2019-09-12.log 2019-09-19 02:11:27.501 - info: info.0 Popup news was read... [gestern] ... 2019-09-20 01:41:27.517 - info: info.0 Popup news was read... 2019-09-20 02:11:05.100 - info: host.DESKTOP-0UPK22M(ioBrMain2) Delete log file iobroker.2019-09-13.log 2019-09-20 02:11:27.515 - info: info.0 Popup news was read... ... [heute] ... 2019-09-21 01:50:02.987 - info: info.0 Popup news was read... 2019-09-21 02:11:05.129 - info: host.DESKTOP-0UPK22M(ioBrMain2) Delete log file iobroker.2019-09-14.log 2019-09-21 02:20:02.980 - info: info.0 Popup news was read... .... 2019-09-21 02:50:02.983 - info: info.0 Popup news was read... 2019-09-21 03:11:05.129 - info: host.DESKTOP-0UPK22M(ioBrMain2) Delete log file iobroker.2019-09-14.log 2019-09-21 03:11:05.130 - info: host.DESKTOP-0UPK22M(ioBrMain2) Cannot delete file "C:\Program Files\iobroker\ioBrMain2\log\iobroker.2019-09-14.log": Error: EPERM: operation not permitted, unlink 'C:\Program Files\iobroker\ioBrMain2\log/iobroker.2019-09-14.log' .... 2019-09-21 05:00:54.021 - error: admin.0 Cannot check file: C:\Program Files\iobroker\ioBrMain2\log/iobroker.2019-09-14.log
Ab heute wird versucht, ein logfile, welches heute um 02:11 schon mal erfolgreich gelöscht wurde, nochmals zu löschen.
Gestern habe ich den Info Adapter von Github installiert / uploaded. Vielleicht bringt eine Installation die Sache durcheinander? -
@klassisch Nach stoppen und Nustarten des ioBroker aus der (Windows-) Konsole verschwand die Fehlermeldung. Für eine Woche. Jetzt ist sie wieder da. Ist das ein Rechte-Artefakt?