NEWS
JavaScript/Blockly: Performance und Auslastung anzeigen
-
Hallo,
ist es möglich, eine Performance-Auswertung über alle laufenden Skripte zu fahren? Also: Welches Skript verbraucht aktuell wie viel CPU-/RAM-Auslastung? Ich würde gerne herausfinden, welches Skript bei mir am meisten Leistung frisst.Mit dem Konsolenbefehl "htop" stelle ich ja nur fest, wie viel CPU-Leistung der Prozess „js-controller” insgesamt verbraucht.
Danke!
-
Hallo,
ist es möglich, eine Performance-Auswertung über alle laufenden Skripte zu fahren? Also: Welches Skript verbraucht aktuell wie viel CPU-/RAM-Auslastung? Ich würde gerne herausfinden, welches Skript bei mir am meisten Leistung frisst.Mit dem Konsolenbefehl "htop" stelle ich ja nur fest, wie viel CPU-Leistung der Prozess „js-controller” insgesamt verbraucht.
Danke!
@Stadtschloss sagte in JavaScript/Blockly: Performance und Auslastung anzeigen:
Mit dem Konsolenbefehl "htop" stelle ich ja nur fest, wie viel CPU-Leistung der Prozess „js-controller” insgesamt verbraucht.
Das ist ja nur der js-controller. Der führt die Scripts ja nicht aus. Das macht der JavaScript-Adapter, welcher im Standard in einem eigenen Prozess gestartet wird.
Je Script bekommt man keine detaillierten Infos zu RAM/CPU.
-
wenn du ein Skript im verdacht hast, könntest du eine separate JavaScript-Instanz erstellen und das Skript dann unter dieser laufen lassen.
Unter
htopwerden die Instanzen dann einzeln aufgeführt bzw. lassen sich im allgemeinen einzeln monitoren da es dann separate Prozesse sind.Hilft auch bei der der Fehlersuche wenn man mal ein Skript baut welches zum Neustart des Adapters führt oder andere Probleme macht.
-
Super danke für eure Antworten/Tipps!
-
Super danke für eure Antworten/Tipps!
Jede einzelne JavaScript Instanz benötigt natürlich nicht unerheblich mehr ram. Daher ist das nur zu Analyse Zwecke ratsam.
Wenn du den ram Verbrauch eines einzelnen Adapters tracken willst findest du bspw unter System.adapter.javascript.0 diverse Werte die man tracken kann.
Wenn da ein Anstieg über die Zeit ersichtlich ist, wäre im nächsten Schritt nach memory leaks zu suchen, die man sich gern mit unsauberer Programmierung von setInterval/setTimeout holt.
-
Jede einzelne JavaScript Instanz benötigt natürlich nicht unerheblich mehr ram. Daher ist das nur zu Analyse Zwecke ratsam.
Wenn du den ram Verbrauch eines einzelnen Adapters tracken willst findest du bspw unter System.adapter.javascript.0 diverse Werte die man tracken kann.
Wenn da ein Anstieg über die Zeit ersichtlich ist, wäre im nächsten Schritt nach memory leaks zu suchen, die man sich gern mit unsauberer Programmierung von setInterval/setTimeout holt.
@OliverIO sagte in JavaScript/Blockly: Performance und Auslastung anzeigen:
Wenn du den ram Verbrauch eines einzelnen Adapters tracken willst
...hat da mal jemand in den Anfangstagen von ioBroker ein Skript geschrieben, das gibt ein json aus

wenn Interesse besteht such ich es mal raus
-
@OliverIO sagte in JavaScript/Blockly: Performance und Auslastung anzeigen:
Wenn du den ram Verbrauch eines einzelnen Adapters tracken willst
...hat da mal jemand in den Anfangstagen von ioBroker ein Skript geschrieben, das gibt ein json aus

wenn Interesse besteht such ich es mal raus
-
Das ist halt eine augenblicksanzeige. Bei ram Probleme wäre eine Ansicht über die Zeit besser.
Möglich ist das über die Aktivierung der Historie für die entsprechenden datenpunkte und Anzeige dann in einem Chart. Flotten oder echart.@OliverIO Das sähe dann so aus

Läuft auch seit Jahren für die mir damals wichtigsten Instanzen
-
Jede einzelne JavaScript Instanz benötigt natürlich nicht unerheblich mehr ram. Daher ist das nur zu Analyse Zwecke ratsam.
Wenn du den ram Verbrauch eines einzelnen Adapters tracken willst findest du bspw unter System.adapter.javascript.0 diverse Werte die man tracken kann.
Wenn da ein Anstieg über die Zeit ersichtlich ist, wäre im nächsten Schritt nach memory leaks zu suchen, die man sich gern mit unsauberer Programmierung von setInterval/setTimeout holt.
@OliverIO sagte in JavaScript/Blockly: Performance und Auslastung anzeigen:
Jede einzelne JavaScript Instanz benötigt natürlich nicht unerheblich mehr ram. Daher ist das nur zu Analyse Zwecke ratsam.
Da hast du natürlich recht, kommt aber ja darauf an wie das System ausgestattet ist.
Trotzdem werde ich wohl meine 5 Instanzen mal wieder auf 2 reduzieren ... auch wenn mein System mit 12GB RAM wohl ganz gut ausgestattet ist.