smartvisu sehr langsam

Begonnen von Hackstall, 14 Juli 2021, 09:15:11

Vorheriges Thema - Nächstes Thema

Hackstall

Hallo ich benutzte schon sei Jahren SmartVisu zusammen mit fhem.

Irgendwie hat sich die Seitenaufbaugeschwindigkeit drastisch verringert (speziell aud dem
Ipad, auf dem Handy ist es akzeptabel).

Ok ich benutze ein paar mehr Grafiken als früher.

Was könnte es für einen Grund geben?
Was sind die Resourcen schluckenden Elemente?

Danke Andreas

P.S. ich habe auf 3.0.1 umgestellt. Ist 3.0.1 langsamer?

wvhn

Wenn Deine Visu-Seiten fertig konfiguriert sind, kannst Du den Widget-Assistenten abschalten.  Das spart Ressourcen. Den größten Performance-Gewinn bringt das Einschalten des Cache. Dann werden die Seiten fertig gerendert abgelegt und nur noch per JavaScript mit aktuellen Daten modifiziert.

Beides machst Du auf der config-Seite.  Bei Änderungen an den Seiten musst Du den Cache löschen.

Gruß
Wolfram


wvhn

Ich sehe gerade: dieselbe Antwort hatte ich Dir schon einmal gegeben. Aber Du hast ja auch dieselbe Frage gestellt:
https://forum.fhem.de/index.php/topic,118786.msg1132334.html#msg1132334

Hast Du die beiden Maßnahmen schon einmal ausprobiert? Und hast Du Ladezeiten analysiert, z.B. in der Entwicklerkonsole?

wvhn

@Hackstall, ein paar Infos brauche ich von Dir, wenn ich helfen soll (siehe oben).

Tatsächlich läuft die v3.0.1 auf älteren Rechnern etwas langsamer, als v2.9. Das spielt sich auf meinem alten iPad im Bereich weniger 100 Millisekunden ab und kann bei vollgeladenen Seiten vlt. 1-2 Sekunden ausmachen. Ursache sind die zusätzlichen Bibliotheken (Roundslider und Toast), sowie die um etwa 50% größeren Highcharts-Bibliotheken. 

Bei einer drastischen Verlangsamung (die Du bitte quantifizieren solltest) gehe ich davon aus, dass der Cache nicht eingeschaltet ist. Ab v3.0 kann der Cache in der Konfiguration nicht mehr aktiviert werden, wenn das ./temp-Verzeichnis nicht schreibbar ist. Die Rechte setzt man, indem man in das Root-Verzeichnis von smartVISU wechselt und dort
sudo bash setpermissions
eingibt.

Interessant wäre es, weitere Laufzeitunterschiede zwischen den Versionen zu identifizieren. Wer damit Erfahrung hat, ist herzlich zur Mithilfe eingeladen.

Gruß
Wolfram

Hackstall

Velen Danke füpr Eure Antworten,

A) Der Cache ist immer an (Natürlich nur bei Seitenänderung ist er geleert)
b) Ich betreibe SmartVisu und Apache in einem Docker Container, DB auch eigener Container und Fhem natürlich auch eigener Container
c) Installiert ist das ganze auf einem NUC i7

weiterhin ist mir aufgefallen dass:
a) auf dem Handy sind die Antwortzeiten akzeptabel und gut bis befriedigend
b) auf dem MAC auch gut bis befriedigend
c) auf den IPADs habe ich meine Probleme (Ipad Air 2, daher schon etwas älter)
Ich muss aber sagen dass unter FireFox (Ipad) es schneller läuft als unter SAFARI
Irgend eine Idee?

DAnke und Gruss Andreas

GammaTwin

Grüße,

ich habe quasi das gleiche Setting, in Bezug Docker und dem NUC. (quasi = es gibt ja verschiedene Container, verschiedene Netze usw.)

smartVISU lädt bei meinen Geräte unterschiedlich schnell, ist aber akzeptabel.

Effekte, die mir aufgefallen sind:
1. Manchmal lädt eine Seite 2mal. Ist man bereits etwas nach unten gescrollt, landet man wieder oben.
2. Die Symbole in Buttons werden erst nach einigen Sekunden angezeigt. Falls das Icon eine Farbe hat erfolgt die Einfärbung ebenfalls verspätet.

Sind das auch Deine Effekte, die dann als "langsam" wahrgenommen werden?

ReviloEgros

Das mit den Symbolen und den Daten die dann vom Backend kommen ist bei mir auch so, das es etwas brauch zum laden, aber nur beim ersten Aufruf. Sind die Daten im Browsercache geht alles ziemlich flott, auch das wechseln der Seiten. Bei mir läufts auch auf nem NUC, allerdings nativ ohne Container.

Hackstall

Hallo mein Verhalten ist leider ein anderes.

a) Wenn ich per Menue eine Seite oeffne so bleibt die aktuelle bei 4-5 Kurven ca 13sec eingefroren und dann kommt sehr schnell die gewaehlte Seite.

b) Bei mehreren Kurven dauert es bis zu 30 sec

c) Bei nur Text dauert es auch so 10sec

Wie gesagt auf dem Handy deutlich geringere akzeptable Zeiten. Auf dem Ipad Aur (aelteres Modell)
die langen Zeiten. Werde heute abend mal ein paar screenshots der Menues wg Komplex oder nicht komplex liefern.

Oder braucht Ihr andere Informationen zur Analyse.

Danke Andreas

wvhn

#8
Gut - mit den Zahlenwerten kann ich etwas anfangen. 13 Sekunden sind definitiv zu lang. Dauert das Laden besonders lang, wenn man von einer Seite mit Grafiken zu einer anderen Seite navigiert, oder ist die Navigation zu einer Seite mit Grafiken besonders lang? 

Zur Analyse würde ich als erstes im Treiber ./driver/io_fhem.js den Loglevel auf 2 stellen. Zusätzlich bitte ab Zeile 543 in die stopseries-Funktion die Log-Ausgabe einbauen:

stopseries: function () {
// TODO
io.log(2, "[io.fhem:] Series cancelling not yet implemented");
},

Im iPad muss man dann die Website-Daten für smartVISU löschen. Sicher ist sicher: auch bei anderen Browsern die Historie für smartVISU löschen. Den smartVISU-Cache natürlich auch - wobei man den dann wieder füllen sollte, indem man zu einigen Seiten navigiert, die man für die Tests verwenden möchte. Wenn das gemacht ist, ruft man in den Entwicklertools die Konsole auf und navigiert zu den Seiten, die man testen will.

smartVISU holt die Seiten aus dem Cache. Das sollte flott gehen. Danach wird der Websocket initialisiert und die Daten beim Backend angefordert. In der Konsole sieht das so aus:
monitor (Items: <n> Series <m>)
Dabei ist n die Anzahl der angeforderten Items und m die Anzahl der angeforderten Serien. Wenn der Websocket antwortet, erscheint
socket.onmessage: data=  ....
und danach alle vom Backend gesendeten Daten. Hier ist interessant, wieviel Zeit zwischen diesen Ereignissen vergeht und ob der Websocket zwischendurch geschlossen und neu gestartet wird.

Könnt Ihr das mal testen und vor allem beobachten, was während des "Freeze" in der Konsole passiert? Wenn man zusätzlich "Anfragen" und "XHR" aktiviert, sieht man dort auch die Ladezeiten.

Gruß
Wolfram

Hackstall

Ich werde die o.g. Schritte natürlich durchführen aber vielleicht noch ein Hinweis:

Sofern ich nur die Configurations Seiten auf dem IPAD benutze (Configuration/Template Checker etc.)
ist dieses auf dem IPAD genauso langnsam wie mit meinen Menüs.

Komischerweise und wie gesagt ist die Geschwindigkeit auf dem iPhone und unter MAC gut bis befriedigend.

Gruss Andreas

ReviloEgros

Also die Config seiten sollten auf jeden Fall flott laufen. Ich hab eine Seite bei mir, die auch etwas länger braucht, aber da sind 66 Widgets drauf in einer Tabelle. Auf dem iPhone brauchts 1-2 Sekunden, auf meinen Teclast M40 Tablet sinds schon 3-4, wie auch auf meinen Laptop was schon etwas älter ist. Irgendwas ist da im argen, kann dir da aber leider nicht weiterhelfen.

ReviloEgros

Hier mal ein kurzes Video meiner Installation über iPhone aufgerufen. Bin grad auf Arbeit und per VPN mit meinem Server zu Haus verbunden. Nicht über die eine Seite wundern, die is für mein Tablet optimiert und nicht mehr responsive 😅

https://youtube.com/shorts/Bi0GwwK1YVE?feature=share

wvhn

@Hackstall, die Info mit der Config-Seite ist nochmal wichtig.  Bevor Du die o.g. Tests machst, können wir die Ursache für die schlechte Performance noch eingrenzen.


  • läuft die Visu deutlich schneller, wenn Du Den Backend-Treiber auf ,,offline" stellst und den Cache löschst?
  • wird es besser, wenn Du zusätzlich zu 1. einen Service (Wetter, Phone, Kalender) nach dem anderen abschaltest? (Immer Cache löschen)
  • von welcher smartVISU-Version hast Du auf v3.0.1 umgestellt? Welche PHP-Version ist installiert?
  • wenn Du Deine alte Visu (das gesamte smartVISU-Verzeichnis der vorherigen Version einschließlich Deiner alten Seiten)  in ein paralleles Verzeichnis z.B. /var/www/html/SV_alt kopierst und diese Visu aufrufst, läuft die dann wirklich schneller?

@GammaTwin, eine Seite wird zuerst geladen und angezeigt und dann werden die dynamischen Inhalte aktualisiert, sobald die item-Daten vom Backend da sind. Das  Update wird vom Websocket getriggert. Kann es sein, dass die Kommunikation zwischen den Docker-Containern den Websocket ausbremst?

Gruß
Wolfram



Hackstall

Hallo vorab mal ein paar Antworten:

1) was ist der Backend-Treiber
2) muss ich etwas Zeit haben (WE)
3) ich habe.von 2.9 umgestellt

PHP 7.3.19-1~deb10u1 (cli) (built: Jul  5 2020 06:46:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.19-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

4) siehe 2)

Permissions stehen auch alle auf rwxrwxrwx


Nachtrag:
Kurioserweise verhalten sich heute die Config Seiten sehr schnell. Also hier Kommando zurück. Sorry.
Wie gesagt auf dem iPhone X Geschwindigkeit gut, MAC Geschwindigkeit gut, halt nur auf dem IPAD, abef das wisst Ihr ja

Hackstall

Achse noch kurzer Nachtrag zu meinem vorherigen Post

Ich habe diverse Widget Fehler aufgrund von Updates. Diese habe ich noch nicht behoben.
Kann es vielleicht auch daran liegen?

Danke Andreas