NEWS
CPU Last für jedes Script anzeigen lassen?
-
Hallo everyone
seit einiger Zeit habe ich eine recht hohe CPU Auslastung, die sehr wahrscheinlich von Javascript kommt.
Da ich ca. 50 Programme am Laufen habe, ist es recht mühselig jedes einzelne Programm über Try&Error zu checken ob es verantwortlich für eine hohe Last ist.
Gibt es dazu ein Tool, Befehle oder sonst etwas um eine Übersicht der Auslastungen zu bekommen? -
@hg6806 einzelne scripte auf auslastung zu überwachen - habe ich noch nichts gesehen
um ersteinmal sicher zu sein, wer die hohe last erzeugt, könntest du auf der linux ebene mal
sudo apt install htop
installieren und mit htop dann aufrufen - dann siehs du erstmal, was die auslastung erzeugt
ist es dann wirklich der javascript adapter, wirst du wohl mit try&error abeiten müssen
-
@hg6806 sagte in CPU Last für jedes Script anzeigen lassen?:
seit einiger Zeit habe ich eine recht hohe CPU Auslastung, die sehr wahrscheinlich von Javascript kommt.
hatte ich vor kurzem auch.. war ein script fehler meinerseits.
da wirst du nicht drum herum kommen alles abschalten und script für script wirder einschalten..und beobachten..
oderdu erzeugst dir einen neuen hist mit einer javascript instanz und schiebst die verdächtigen scripte da hin.
so hast du zumindest einen überblick und kannst weiter suchen.. beobachten musst du nur dann den 2-ten host -
@arteck sagte in CPU Last für jedes Script anzeigen lassen?:
du erzeugst dir einen neuen hist mit einer javascript instanz und schiebst die verdächtigen scripte da hin.
Oder eine zweite Instanz, die als separater Prozess in htop auftaucht
-
Danke für die Tipps.
Das mit der 2. Instanz ist eine gute Idee.Vielleicht kann man eine einzelne Auslastungsabfrage auch in den JavaScript-Adapter als Feature einbauen?
Ich denke das Problem hatten die meisten schon mal. -
@hg6806 Das ist leider nicht möglich
-
@hg6806 ich hatte das Problem mit der Hohen CPU durch das DWD/NINA/UWZ Script. So als Idee, vllt hast du das auch zufällig laufen.
-
@crunchip
Nein, aber ich denke es gibt eine nahezu unendliche Möglichkeiten das System in die volle Auslastung zu bringen -
@hg6806 ja leider.. aber da die javascripte nicht in einzelnen prozessen laufen.. kommst du an diese nicht dran..halt nur an das haupt javascript prozess..
-
@hg6806 sagte in CPU Last für jedes Script anzeigen lassen?:
die sehr wahrscheinlich von Javascript kommt.
zeig mal deine auslastung mit htop - ist das wirklich so
es mag scripte geben, die zu oft getriggert werden - aber normalerweise, wenn ein scriptfehler ist, hast du 100 % javascript-instanz auslastung und nix geht mehr
was hast du den an adaptern dazu installiert - ich habe seit bullseye etwas mehr auslastung unter proxmox - was ist eigentlich eine hohe auslastung für dich
wäre mir da nicht so sicher, ob das ein script ist ! kann sein - für mich wäre die wahrscheinlickeit größer, das etwas anders mehr resourcen nutzt
-
@alcalzone sagte in CPU Last für jedes Script anzeigen lassen?:
Oder eine zweite Instanz, die als separater Prozess in htop auftaucht
zum Verständnis, ist das dann auch wirklich so möglich?
hab gerade testweise meine 2te Javascript instanz aktiviert.
In dieser läuft kein einziges Script, sind aber ein paar hinterlegt. Wenn ich nun den Ram Verbrauch meiner beiden Instanzen betrachte, liegt
Instanz 0 bei ~ 300mb mit 69 aktiven Scripte
Instanz 1 bei ~ 220mb mit 0 aktiven Scripte
globale Scripte 0mit htop betrachtet, sind beide Instanzen von der CPU nahezu identisch, bzw Instanz 0 minimal höher. Beide bewegen sich im Schnitt, im Bereich bis 10% CPU
-
@crunchip Javascript registriert beim Start automatisch subscriptions auf ALLE states und aktualisiert seinen internen Cache bei Änderungen. Wenn in deinem System viel los ist, gibts da natürlich eine gewisse Grundlast, auch ohne aktive Skripte.
-
@alcalzone ok, als Laie verstehe ich zwar nur Bahnhof, aber ich lese daraus, das dies also völlig normal zu sein scheint. Was mir jedoch absolut unklar ist, der hohe Ram Verbrauch, der Instanz 1, denn das ist ja kein Wert durch den Start verursacht, sondern Dauerzustand.
testweise einfach eine weitere Instanz angelegt, also ohne jegliche Scripte
-
@crunchip sagte in CPU Last für jedes Script anzeigen lassen?:
testweise einfach eine weitere Instanz angelegt, also ohne jegliche Scripte
Da siehst du es ja. Die Instanz bekommt alle 15 Sekunden 1172 State-Änderungen mit, die sie verarbeitet (CPU-Last). Die (und alle anderen States die in deinem System existieren) werden im Adapter zwischengespeichert (RAM), damit alle Skripte (ob es welche gibt oder nicht) schön userfreundlich das synchrone
getState(...).val
nutzen können, ohne sich mit callbacks oderasync
herumzuschlagen.