NEWS
History oder Flot Performance-Fresser?
-
@Homoran uups, jetzt bin ich doch etwas irritiert.
Ich dachte der htop zeigt einen momentanen Zustand der Prozesse (also alle Prozesse die gerade zu einem Zeitpunkt aktiv sind) und nicht ein Blick in die Vergangenheit.@TheDamned sagte in History oder Flot Performance-Fresser?:
ch dachte der htop zeigt einen momentanen Zustand der Prozesse
und warum zweifelst du jetzt daran?
@TheDamned sagte in History oder Flot Performance-Fresser?:
Ist das jetzt die große Prozessorlast?
Diese "Millionen" Informationen müssen ja in die Grafik einberechnet werden.
Dort werden ja immer eine bestimmte Anzahl zu einem Punkt zusammengerechnet (Aggregation).Bei jedem Refresh (und erst recht beim Zoom und Schieben) müssen diese alle wieder neu berechnet werden
DAS ist die Prozessorlast
-
@TheDamned sagte in History oder Flot Performance-Fresser?:
ch dachte der htop zeigt einen momentanen Zustand der Prozesse
und warum zweifelst du jetzt daran?
@TheDamned sagte in History oder Flot Performance-Fresser?:
Ist das jetzt die große Prozessorlast?
Diese "Millionen" Informationen müssen ja in die Grafik einberechnet werden.
Dort werden ja immer eine bestimmte Anzahl zu einem Punkt zusammengerechnet (Aggregation).Bei jedem Refresh (und erst recht beim Zoom und Schieben) müssen diese alle wieder neu berechnet werden
DAS ist die Prozessorlast
@Homoran Ich lese alle 2 Sek die Daten ein. Das sind dann 43200 Daten pro Tag.
Bei 4 Linien sind das dann 172800 Daten, die alle 10 sek im Flot-Chart berechnet werden müssen.Damit kann ich die Prozessorlast aber nur dann senken, wenn
- ich weniger Linien Zeichne (Informationsverlust) oder
- die Datenpunkte nicht alle 2 sek sondern nur z.B. alle 2 min einlese (Verlust der Granularität beim Zoomen)
Wenn dann der Staubsauger 1,5 min lang eingeschaltet wird, bekomme ich das bei meiner Strommessung nicht mit.
Irgendwo bin ich immer der Gekniffene :-(
-
@Homoran Ich lese alle 2 Sek die Daten ein. Das sind dann 43200 Daten pro Tag.
Bei 4 Linien sind das dann 172800 Daten, die alle 10 sek im Flot-Chart berechnet werden müssen.Damit kann ich die Prozessorlast aber nur dann senken, wenn
- ich weniger Linien Zeichne (Informationsverlust) oder
- die Datenpunkte nicht alle 2 sek sondern nur z.B. alle 2 min einlese (Verlust der Granularität beim Zoomen)
Wenn dann der Staubsauger 1,5 min lang eingeschaltet wird, bekomme ich das bei meiner Strommessung nicht mit.
Irgendwo bin ich immer der Gekniffene :-(
@TheDamned sagte in History oder Flot Performance-Fresser?:
Damit kann ich die Prozessorlast aber nur dann senken, wenn
Nope!
du kannst auch noch an der Aggregation spielen, wie viele Punkte pro Linie dargestellt werden sollen oder an der refresh- Rate@TheDamned sagte in History oder Flot Performance-Fresser?:
Irgendwo bin ich immer der Gekniffene
Oder du nimmst keinen RasPi sondern einen 128-Kerner mit Wasserkühlung
-
@TheDamned sagte in History oder Flot Performance-Fresser?:
Damit kann ich die Prozessorlast aber nur dann senken, wenn
Nope!
du kannst auch noch an der Aggregation spielen, wie viele Punkte pro Linie dargestellt werden sollen oder an der refresh- Rate@TheDamned sagte in History oder Flot Performance-Fresser?:
Irgendwo bin ich immer der Gekniffene
Oder du nimmst keinen RasPi sondern einen 128-Kerner mit Wasserkühlung
@Homoran said in History oder Flot Performance-Fresser?:
du kannst auch noch an der Aggregation spielen, wie viele Punkte pro Linie dargestellt werden sollen oder an der refresh- Rate
Wo stelle ich diese Aggregation ein?
RefreshRate meinst du sicherlich wie oft der Flot-Chart neu gezeichnet wird, oder?
(Einzustellen in FlotEditor unter Zeit -> Autoupdate alle xxx)Wenn ich diese Anzahl der Punkte reduziere (Aggregation ) und dann Zoome, habe ich dann auch einen Granularitätsverlust?
-
@Homoran said in History oder Flot Performance-Fresser?:
du kannst auch noch an der Aggregation spielen, wie viele Punkte pro Linie dargestellt werden sollen oder an der refresh- Rate
Wo stelle ich diese Aggregation ein?
RefreshRate meinst du sicherlich wie oft der Flot-Chart neu gezeichnet wird, oder?
(Einzustellen in FlotEditor unter Zeit -> Autoupdate alle xxx)Wenn ich diese Anzahl der Punkte reduziere (Aggregation ) und dann Zoome, habe ich dann auch einen Granularitätsverlust?
@TheDamned sagte in History oder Flot Performance-Fresser?:
Wenn ich diese Anzahl der Punkte reduziere (Aggregation ) und dann Zoome, habe ich dann auch einen Granularitätsverlust?
Nein, du musst dann nur groß genug zoomen.
Wenn du eingibst, ein Chart soll 300 Punkte haben, dann hast du bei zoom 10 Minuten alle Datenpunkte (2sec * 300 = 600sec)Du solltest dich nur mal fragen ob eine Auflösung von 2 Sekunden wirklich notwendig ist
-
@TheDamned sagte in History oder Flot Performance-Fresser?:
Wenn ich diese Anzahl der Punkte reduziere (Aggregation ) und dann Zoome, habe ich dann auch einen Granularitätsverlust?
Nein, du musst dann nur groß genug zoomen.
Wenn du eingibst, ein Chart soll 300 Punkte haben, dann hast du bei zoom 10 Minuten alle Datenpunkte (2sec * 300 = 600sec)Du solltest dich nur mal fragen ob eine Auflösung von 2 Sekunden wirklich notwendig ist
Flot-Charts werden bei mir bis auf eine Ausnahme immer nur als Pop-Up-Fenster angezeigt. Und auch die Ausnahme befindet sich auf einem View, der nicht standardmäßig angezeigt wird. So habe ich auch keine Performance-Probleme beim Aufruf meine Visualisierung. Die habe ich aber eh kaum, weil das Ganze bei mir auf einer Synology DiskStation mit 6 GB RAM im Docker-Container läuft. Als Datenbank nutze ich Maria DB 10, die ich per SQL-Adapter anspreche. So kann ich mir recht gut auch größere Zeiträume von 6 Monaten in Flot-Charts anzeigen lassen. Ich habe mir zudem ein Auswahlmenü für die Flot-Charts erstellt, mit dem ich schnell zwischen verschiedenen Anzeigzeiträumen (h, 6h, T, 3T, W, M, 6M) umschalten kann.
Sieht auf dem iPhone dann z.B. so aus:

Leider ist die Anzeige der x-Achsen-Skalierung nicht immer optimal. Aber das ist nicht die einzige Sache, die beim Flot-Adapter verbesserungswürdig wäre. ;)
-
Flot-Charts werden bei mir bis auf eine Ausnahme immer nur als Pop-Up-Fenster angezeigt. Und auch die Ausnahme befindet sich auf einem View, der nicht standardmäßig angezeigt wird. So habe ich auch keine Performance-Probleme beim Aufruf meine Visualisierung. Die habe ich aber eh kaum, weil das Ganze bei mir auf einer Synology DiskStation mit 6 GB RAM im Docker-Container läuft. Als Datenbank nutze ich Maria DB 10, die ich per SQL-Adapter anspreche. So kann ich mir recht gut auch größere Zeiträume von 6 Monaten in Flot-Charts anzeigen lassen. Ich habe mir zudem ein Auswahlmenü für die Flot-Charts erstellt, mit dem ich schnell zwischen verschiedenen Anzeigzeiträumen (h, 6h, T, 3T, W, M, 6M) umschalten kann.
Sieht auf dem iPhone dann z.B. so aus:

Leider ist die Anzeige der x-Achsen-Skalierung nicht immer optimal. Aber das ist nicht die einzige Sache, die beim Flot-Adapter verbesserungswürdig wäre. ;)
@dtp Wie mache ich das mit den PopUps?
Ich habe heute morgen mal mein System analysiert.
Ich hatte die View mit dem Flot-Chart im Vis-Editor offen.
Dann hatte ich den Flot-Editor noch offen und dann auch noch das "Zeige im Fenster".
So musste das Flot-Chart 4 mal gezeichnet werden. Das hat dann wohl meinen armen kleinen Pi überlastet.Wenn ich alle Fenster zumache und nur mein Projekt laufen lasse, ist es zwar immer noch hoch, aber deutlich besser.

Ich glaube, ich mach das auch mit den PopUps, wenn ich dann weiß, wie es geht.
-
@dtp Wie mache ich das mit den PopUps?
Ich habe heute morgen mal mein System analysiert.
Ich hatte die View mit dem Flot-Chart im Vis-Editor offen.
Dann hatte ich den Flot-Editor noch offen und dann auch noch das "Zeige im Fenster".
So musste das Flot-Chart 4 mal gezeichnet werden. Das hat dann wohl meinen armen kleinen Pi überlastet.Wenn ich alle Fenster zumache und nur mein Projekt laufen lasse, ist es zwar immer noch hoch, aber deutlich besser.

Ich glaube, ich mach das auch mit den PopUps, wenn ich dann weiß, wie es geht.
@TheDamned sagte in History oder Flot Performance-Fresser?:
ist es zwar immer noch hoch, aber deutlich besser.
eine loadAverage um die 1 ist eigentlich brauchbar, aber ggf. sind da schon die 2sekündlichen Schreibvorgänge von x Datenpunkten dein Problem.
-
@dtp Wie mache ich das mit den PopUps?
Ich habe heute morgen mal mein System analysiert.
Ich hatte die View mit dem Flot-Chart im Vis-Editor offen.
Dann hatte ich den Flot-Editor noch offen und dann auch noch das "Zeige im Fenster".
So musste das Flot-Chart 4 mal gezeichnet werden. Das hat dann wohl meinen armen kleinen Pi überlastet.Wenn ich alle Fenster zumache und nur mein Projekt laufen lasse, ist es zwar immer noch hoch, aber deutlich besser.

Ich glaube, ich mach das auch mit den PopUps, wenn ich dann weiß, wie es geht.
@TheDamned sagte in History oder Flot Performance-Fresser?:
Wie mache ich das mit den PopUps?
Am einfachsten per Dialog-Widget, das dann einen entsprechenden View mit dem Flot-Chart aufruft. Müsste heute Abend noch mal schauen, wie das Widget genau heißt, weil ich die Bezeichnungen immer vergesse. ;)
Aber ich mache das an ganz vielen Stellen so, dass ich mir mit einem Dialog-Widget bei Bedarf einen View öffne, den ich dann einfach wieder per Klick schließen kann. Man kann sich einen solchen View auch per Javaskript einblenden lassen, wenn es z.B. an der Haustür klingelt. So habe ich das bei uns realisiert, um unmittelbar mit dem Klingen einen Videostream der Haustürkamera anzuzeigen. Geht aber mit MJPEG-Streams deutlich besser als mit RTSP-Streams. Aber das würde hier im Thread wohl etwas zu weit führen.
-
@TheDamned sagte in History oder Flot Performance-Fresser?:
Wie mache ich das mit den PopUps?
Am einfachsten per Dialog-Widget, das dann einen entsprechenden View mit dem Flot-Chart aufruft. Müsste heute Abend noch mal schauen, wie das Widget genau heißt, weil ich die Bezeichnungen immer vergesse. ;)
Aber ich mache das an ganz vielen Stellen so, dass ich mir mit einem Dialog-Widget bei Bedarf einen View öffne, den ich dann einfach wieder per Klick schließen kann. Man kann sich einen solchen View auch per Javaskript einblenden lassen, wenn es z.B. an der Haustür klingelt. So habe ich das bei uns realisiert, um unmittelbar mit dem Klingen einen Videostream der Haustürkamera anzuzeigen. Geht aber mit MJPEG-Streams deutlich besser als mit RTSP-Streams. Aber das würde hier im Thread wohl etwas zu weit führen.
Also, ähm, verstehen tue ich das nicht.
Ich habe die Wiederholrate im Blockly bei der Gasmessung von 2 auf 30 sek erhöht und bei der Strommessung von 2 auf 10 sek.
Jetzt geht mein Load wieder durch die Decke.

Er stand auch schon mal auf über 6.
-
Also, ähm, verstehen tue ich das nicht.
Ich habe die Wiederholrate im Blockly bei der Gasmessung von 2 auf 30 sek erhöht und bei der Strommessung von 2 auf 10 sek.
Jetzt geht mein Load wieder durch die Decke.

Er stand auch schon mal auf über 6.
@TheDamned mit htop stehe ich auf Kriegsfuss, ich nutze top.
Wenn du den Code als text in code-tags posten würdest könnte ich dir auch den Ausschnitt kopieren.
@TheDamned sagte in History oder Flot Performance-Fresser?:
Wiederholrate im Blockly bei der Gasmessung von 2 auf 30 sek erhöht
Das ist ja auch nicht das Problem!
das liegt bei der Strommessung -
@TheDamned mit htop stehe ich auf Kriegsfuss, ich nutze top.
Wenn du den Code als text in code-tags posten würdest könnte ich dir auch den Ausschnitt kopieren.
@TheDamned sagte in History oder Flot Performance-Fresser?:
Wiederholrate im Blockly bei der Gasmessung von 2 auf 30 sek erhöht
Das ist ja auch nicht das Problem!
das liegt bei der Strommessung -
@Homoran Welchen Code genau? Das ist inzwischen ein Riesen-Projekt geworden mit mehr als 2000 Zeilen Code.
@TheDamned sagte in History oder Flot Performance-Fresser?:
Welchen Code genau?
weiß ich doch nicht
kannst du mit dem markiertne Eintrag etwas anfangen?
Mir sagt das nichts -
@TheDamned sagte in History oder Flot Performance-Fresser?:
Welchen Code genau?
weiß ich doch nicht
kannst du mit dem markiertne Eintrag etwas anfangen?
Mir sagt das nichts@Homoran aaaah, jetzt weiß ich, was du meinst. Du meinst den türkis markierten Eintrag.
Das ist kein Code, den ich geschrieben habe.
Das ist anscheinend der Flot-Zugriff auf die History-Daten.Ich habe mal etwas nach rechts gescrollt. Dann sieht man das eher.

-
@Homoran aaaah, jetzt weiß ich, was du meinst. Du meinst den türkis markierten Eintrag.
Das ist kein Code, den ich geschrieben habe.
Das ist anscheinend der Flot-Zugriff auf die History-Daten.Ich habe mal etwas nach rechts gescrollt. Dann sieht man das eher.

@TheDamned sagte in History oder Flot Performance-Fresser?:
Ich habe mal etwas nach rechts gescrollt. Dann sieht man das eher.
deswegen sollst du es als text in code-tags posten!
@TheDamned sagte in History oder Flot Performance-Fresser?:
Das ist anscheinend der Flot-Zugriff auf die History-Daten.
von welcher Chart?
alleine diese benötigte >80% CPU, wenn ich es noch richtig im Kopf hatte.da msst du mal deine Einstellungen überprüfen
-
@TheDamned sagte in History oder Flot Performance-Fresser?:
Ich habe mal etwas nach rechts gescrollt. Dann sieht man das eher.
deswegen sollst du es als text in code-tags posten!
@TheDamned sagte in History oder Flot Performance-Fresser?:
Das ist anscheinend der Flot-Zugriff auf die History-Daten.
von welcher Chart?
alleine diese benötigte >80% CPU, wenn ich es noch richtig im Kopf hatte.da msst du mal deine Einstellungen überprüfen
@Homoran Ich bin da nicht so der Crack.
An den Text komme ich unter htop ja gar nicht ran und unter top sehe ich den gar nicht.
Diese Zeilen finden sich bei beiden Charts, sowohl Strom als auch Gasverbrauch.
Welche Einstellungen soll ich da prüfen? Ich arbeite mit ioBroker, Vis udn Flot erst seit ca. 3 Wochen.
-
@Homoran Ich bin da nicht so der Crack.
An den Text komme ich unter htop ja gar nicht ran und unter top sehe ich den gar nicht.
Diese Zeilen finden sich bei beiden Charts, sowohl Strom als auch Gasverbrauch.
Welche Einstellungen soll ich da prüfen? Ich arbeite mit ioBroker, Vis udn Flot erst seit ca. 3 Wochen.
@TheDamned sagte in History oder Flot Performance-Fresser?:
Welche Einstellungen soll ich da prüfen?
Wie ich bereits schrieb:
- Häufigkeit/Anzahl der Werte der Datenpunkte (Hieraus muss für die Darstellung ein gleitender Mittelwert gerechnet werden)
- Aktualisierungsrate (diese bestimmt die Häufigkeit der Berechnungen)
- Anzahl Datenpunkte im Chart (Aggregation)
- Anzahl Linien im Chart
du schriebst:
@TheDamned sagte in History oder Flot Performance-Fresser?:Bei 4 Linien sind das dann 172800 Daten, die alle 10 sek im Flot-Chart berechnet werden müssen.
(Daten=Werte)Zusätzlich werden alle diese Datenpunkte noch im 2-Sekundentakt in die History geschrieben
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden