Extreme Ladezeiten mit Chrome (Mac)

Begonnen von AndreAC, 04 September 2023, 14:37:22

Vorheriges Thema - Nächstes Thema

AndreAC

Hallo zusammen,

ich kämpfe seit geraumer Zeit damit, dass der Zugriff auf die Web-Oberfläche von FHEM sehr häufig extrem langsam ist. Meine erste Vermutung war, dass einfach der Raspberry 3 an seine Grenzen kommt, weil ich eine piVCCU parallel laufen hatte - also habe ich am Wochenende die piVCCU auf einen anderen Raspberry verschoben und anschießend den FHEM-Raspberry neu eingerichtet und mein Backup von FHEM aufgespielt... aber gefühlt ist es seitdem sogar schlimmer, fast jede Abfrage hängt weit länger als 1 Minute.

Bei der weiteren Recherche bin ich dann auf diese beiden alten Themen gestoßen:
- https://forum.fhem.de/index.php?topic=83349.15
- https://forum.fhem.de/index.php/topic,83537.msg766424.html#msg766424

Tatsächlich nutze ich Chrome und habe daraufhin einmal testweise Safari benutzt - damit läuft es wirklich wunderbar. Ein Blick in meine Config hat gezeigt, dass
attr INTERN longpoll 1gesetzt war, was ich daraufhin auf
attr INTERN longpoll websocketgeändert habe. (INTERN ist mein FHEMWEB auf Port 8080, den ich ohne Login innerhalb meines lokalen Netzwerks benutze.) Aber auch mit "shutdown restart" zeigt die Änderung keine Wirkung. Ohne "longpoll" zu setzen, was laut den alten Threads bei Chrome automatisch zum richtigen Default führen müsste, beobachte ich ebenfalls keinen Unterschied.

Die Themen sind mittlerweile auch mehr als 5 Jahre alt, deswegen vermute ich ein neues (aber möglicherweise ähnliches?) Problem.

Wenn ich in die Konsole von Chrome schaue, dann sind es alle JS-Dateien, die deren Requests lange blockiert sind (obwohl sie einfach als "unverändert" zurückgemeldet werden). Ich sehe nur einen offenen Websocket, was nach meinem Verständnis richtig sein sollte?
Du darfst diesen Dateianhang nicht ansehen.

Ich nutze Chrome auf meinem Mac in der Version 116.0.5845.140 (arm64), auch FHEM ist aktuell:

Latest Revision: 27918

File                      Rev  Last Change

fhem.pl                  27895 2023-08-24 12:46:07Z rudolfkoenig
39_alexa.pm              23820 2021-02-24 19:29:15Z justme1968
96_allowed.pm            26004 2022-04-29 19:06:05Z rudolfkoenig
95_Astro.pm              25198 2021-11-07 15:42:54Z phenning
90_at.pm                  25248 2021-11-21 10:29:01Z rudolfkoenig
98_autocreate.pm          23727 2021-02-12 20:31:37Z rudolfkoenig
73_AutoShuttersControl.pm 26950 2023-01-03 07:09:44Z CoolTux
57_Calendar.pm            26344 2022-08-22 15:06:57Z neubert
00_CUL.pm                24815 2021-08-01 16:14:02Z rudolfkoenig
95_Dashboard.pm          25965 2022-04-15 15:31:56Z DS_Starter
93_DbLog.pm              27857 2023-08-19 19:06:25Z DS_Starter
98_DOIF.pm                27740 2023-07-10 09:31:11Z Damian
98_dummy.pm              25606 2022-02-01 10:43:57Z rudolfkoenig
37_echodevice.pm          26735 2022-11-22 11:48:55Z michael.winkler
91_eventTypes.pm          23471 2021-01-04 19:24:21Z rudolfkoenig
01_FHEMWEB.pm            27823 2023-08-07 15:28:24Z rudolfkoenig
92_FileLog.pm            27751 2023-07-11 18:43:36Z rudolfkoenig
98_GEOFANCY.pm            18995 2019-03-22 20:09:53Z loredo
88_HMCCU.pm              27641 2023-06-01 17:52:19Z zap
88_HMCCUCHN.pm            26565 2022-10-20 12:24:12Z zap
88_HMCCURPCPROC.pm        26565 2022-10-20 12:24:12Z zap
30_HUEBridge.pm          26438 2022-09-22 06:40:39Z justme1968
31_HUEDevice.pm          26730 2022-11-21 17:28:03Z justme1968
36_JeeLink.pm            14707 2017-07-13 18:08:33Z justme1968
98_JsonList2.pm          26701 2022-11-14 09:51:02Z rudolfkoenig
10_MQTT2_DEVICE.pm        27674 2023-06-12 08:33:06Z rudolfkoenig
00_MQTT2_SERVER.pm        27654 2023-06-04 15:20:06Z rudolfkoenig
No Id found for 99_myUtils.pm
No Id found for 99_myUtilsTelegram.pm
91_notify.pm              25888 2022-03-27 10:22:58Z rudolfkoenig
70_Pushover.pm            27466 2023-04-20 07:51:19Z rudolfkoenig
33_readingsGroup.pm      23844 2021-02-27 19:43:24Z justme1968
10_RESIDENTS.pm          19533 2019-06-02 19:33:11Z loredo
20_ROOMMATE.pm            19533 2019-06-02 19:33:11Z loredo
39_siri.pm                24071 2021-03-24 08:02:11Z justme1968
98_structure.pm          27209 2023-02-12 14:45:51Z rudolfkoenig
99_SUNRISE_EL.pm          24249 2021-04-14 05:45:49Z rudolfkoenig
98_SVG.pm                27261 2023-02-21 09:34:09Z rudolfkoenig
42_SYSMON.pm              26358 2022-08-29 21:11:26Z hexenmeister
50_TelegramBot.pm        27218 2023-02-13 22:45:48Z viegener
98_telnet.pm              25754 2022-02-27 16:49:52Z rudolfkoenig
59_Twilight.pm            25067 2021-10-13 04:26:30Z Beta-User
99_Utils.pm              24128 2021-04-02 16:29:11Z rudolfkoenig
98_version.pm            26611 2022-10-28 16:32:29Z betateilchen
59_Weather.pm            27146 2023-01-29 15:27:02Z CoolTux
98_weblink.pm            26988 2023-01-07 09:18:42Z rudolfkoenig

AttrTemplate.pm          27145 2023-01-29 11:48:19Z rudolfkoenig
Blocking.pm              23268 2020-12-01 11:48:48Z rudolfkoenig
Color.pm                  20813 2019-12-22 18:42:10Z justme1968
CoProcess.pm              24043 2021-03-21 16:21:46Z justme1968
DevIo.pm                  27247 2023-02-18 21:22:32Z rudolfkoenig
GPUtils.pm                19666 2019-06-20 11:17:29Z CoolTux
HMCCUConf.pm              26565 2022-10-20 12:24:12Z zap
HttpUtils.pm              27406 2023-04-07 16:52:19Z rudolfkoenig
Info.pm                      28 2008-11-09 01:08:44Z dsully
Meta.pm                  26889 2022-12-23 15:04:11Z CoolTux
RESIDENTStk.pm            19788 2019-07-06 08:10:55Z loredo
RTypes.pm                10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm          25286 2021-12-03 10:16:56Z rudolfkoenig
SubProcess.pm            14334 2017-05-20 23:11:06Z neubert
TcpServerUtils.pm        25866 2022-03-21 09:01:16Z rudolfkoenig
UConv.pm                  21159 2020-02-09 14:04:27Z loredo
Unit.pm                  19614 2019-06-13 23:11:25Z loredo

doif.js                    24438 2021-05-14 18:08:18Z Ellert
fhemweb.js                27117 2023-01-25 09:13:32Z rudolfkoenig
fhemweb_readingsGroup.js  15189 2017-10-03 17:53:27Z justme1968
svg.js                    23428 2020-12-27 22:07:20Z rudolfkoenig

Hier noch die Raw Definition von "INTERN":

defmod INTERN FHEMWEB 8080 global
attr INTERN JavaScripts codemirror/fhem_codemirror.js
attr INTERN codemirrorParam { "theme":"blackboard", "lineNumbers":true }
attr INTERN csrfToken none
attr INTERN defaultRoom DashboardRoom
attr INTERN editConfig 1
attr INTERN hiddenroom DashboardRoom
attr INTERN longpoll websocket
attr INTERN stylesheetPrefix dark

setstate INTERN 2023-09-04 14:17:33 state Initialized

Falls jemand eine Idee hat, wie ich Chrome Beine machen kann, würde ich mich über einen Hinweis freuen. Weitere Infos steuere ich gerne bei, wenn sie hilfreich sein können. (Ich hoffe, es ist richtig, dass ich mich nicht an die alten, gelösten Threads dranhänge. Sonst gebt gerne Bescheid.)

rudolfkoenig

#1 Was sieht man nach Reload der FHEMWEB-Seite in der Chrome JavaScript Console?
#2 was sieht man im FHEM-Log, wenn man vorher "attr INTERN verbose 4" gesetzt hat, und die Seite mit Shift-Apfel-R neu laedt?

AndreAC

#2
Danke für die schnelle Reaktion. Hier die Antworten auf deine Fragen:

#1 Die JavaScript Konsole zeigt folgendes:

fhemweb.js:610 16:22:57.604 Inform-channel opened (websocket) with filter room=1\. Allgemein

#2 Wenn ich die gleiche Seite nach attr INTERN verbose 4 mit einem Hard Reload öffne, finde ich folgendes im Log:

2023.09.04 16:24:08 4: INTERN_192.168.188.80_55544 GET /fhem?room=1%2E%20Allgemein&fw_id=1693837041.67968; BUFLEN:0
2023.09.04 16:24:08 4: INTERN: /fhem?room=1%2E%20Allgemein&fw_id=1693837041.67968 / RL:10536 / text/html; charset=UTF-8 / Content-Encoding: gzip
 / Cache-Control: no-cache, no-store, must-revalidate

2023.09.04 16:24:08 4: Connection accepted from INTERN_192.168.188.80_55545
2023.09.04 16:24:39 4: Connection closed for INTERN_192.168.188.80_55544: EOF
2023.09.04 16:25:05 4: Connection accepted from INTERN_192.168.188.80_55566
2023.09.04 16:25:05 4: INTERN_192.168.188.80_55566 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-09.log; BUFLEN:0
2023.09.04 16:25:05 4: Connection accepted from INTERN_192.168.188.80_55567
2023.09.04 16:25:05 4: INTERN_192.168.188.80_55567 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-09.log; BUFLEN:0
2023.09.04 16:25:06 4: Connection accepted from INTERN_192.168.188.80_55568
2023.09.04 16:25:26 4: Connection accepted from INTERN_192.168.188.80_53871
2023.09.04 16:25:26 4: INTERN_192.168.188.80_53871 GET /fhem?room=1%2E%20Allgemein; BUFLEN:0
2023.09.04 16:25:27 4: INTERN: /fhem?room=1%2E%20Allgemein / RL:10533 / text/html; charset=UTF-8 / Content-Encoding: gzip
 / Cache-Control: no-cache, no-store, must-revalidate

2023.09.04 16:25:27 4: Connection accepted from INTERN_192.168.188.80_53872
2023.09.04 16:25:27 4: Connection accepted from INTERN_192.168.188.80_53873
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/pgm2/jquery.min.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53872 GET /fhem/codemirror/fhem_codemirror.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53873 GET /fhem/pgm2/jquery-ui.min.css; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53872 GET /fhem/pgm2/doif.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/pgm2/style.css?v=1693829853.20368; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53872 GET /fhem/pgm2/fhemweb.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53873 GET /fhem/pgm2/jquery-ui.min.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53872 GET /fhem/pgm2/darkCommon.css; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/pgm2/fhemweb_readingsGroup.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53872 GET /fhem/pgm2/dashboard.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53873 GET /fhem/pgm2/svg.js; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/pgm2/dashboard_darkstyle.css; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53873 GET /fhem/images/default/icoEverything.png; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/images/default/HOME_Status.1.png; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/images/default/fhemicon_dark.png; BUFLEN:0
2023.09.04 16:25:27 4: INTERN_192.168.188.80_53871 GET /fhem/icons/favicon; BUFLEN:0
2023.09.04 16:25:29 4: Connection closed for INTERN_192.168.188.80_53872: EOF
2023.09.04 16:25:29 4: Connection closed for INTERN_192.168.188.80_53871: EOF
2023.09.04 16:25:29 4: Connection closed for INTERN_192.168.188.80_53873: EOF
2023.09.04 16:25:36 4: Connection closed for INTERN_192.168.188.80_55567: EOF
2023.09.04 16:25:36 4: Connection accepted from INTERN_192.168.188.80_55582
2023.09.04 16:25:36 4: INTERN_192.168.188.80_55582 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2023-09.log; BUFLEN:0

Was mich gerade stutzig macht, ist die 192.168.188.80 - es müsste eigentlich die 192.168.188.100 sein. Wenn ich jetzt statt http://haussteuerung:8080/ die IP http://192.168.188.100:8080 verwende, klappt es auch im Chrome einwandfrei. Im Safari macht es keinen Unterschied, ob ich Host oder IP verwende.

Ich schaue mal in meine Fritzbox und die Schnittstellenkonfiguration auf dem Raspberry - eigentlich habe ich Wifi abgeschaltet und Ethernet fest auf die .100 gesetzt. Nicht, dass das Problem bei Chrome + Netzwerkkonfiguration statt bei Chrome + FHEM liegt.

AndreAC

Ok, sorry, ich merke gerade, dass das die Client-IP ist - also die von meinem MacBook. Also dahingehend alles in Ordnung. Trotzdem scheint der Unterschied beim Chrome zwischen Host haussteuerung:8080 und direkter IP 192.168.188.100:8080 zu liegen, denn mit der IP habe ich das Problem nicht.

Wernieman

Verwendest Du jetzt die Fritte oder Deinen PiHole als DNS-Server?

Hast Du euch eine Domaine am laufen, bzw. mal mit dieser probiert?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

AndreAC

Zitat von: Wernieman am 04 September 2023, 19:47:12Verwendest Du jetzt die Fritte oder Deinen PiHole als DNS-Server?

Nein, ich habe keinen PiHole in Betrieb, den Hostname (haussteuerung) habe ich direkt in der Fritte vergeben.

ZitatHast Du euch eine Domaine am laufen, bzw. mal mit dieser probiert?

Meinst Du lokal bei mir im Netz (haussteuerung.local)? Oder das ich eine registrierte Domain einer lokalen IP-Adresse zuweise? Werde ich, wenn ich heute Abend zuhause bin, mal testen und Rückmeldung geben.

Wernieman

Wenn Du über die Fritte gehst, dann probiere bitte mal als Url:
haussteuerung.fritz.box
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

AndreAC

Gestern Abend konnte ich das Problem nicht mehr rekonstruieren - der Zugriff funktioniert auch per Chrome einwandfrei.

Angerührt habe ich nichts, aber festgestellt, dass die Fritzbox in der Nacht (wegen Update) automatisch neu gestartet wurde. Auf Chrome-Seite hatte ich bereits vorher alles mögliche probiert (Hard Reload, Cache leeren, Inkognito Modus), ohne Effekt.

Ich bin jetzt erstmal froh, dass es funktioniert und markiere den Thread als gelöst - habe aber noch Sorge, dass nur das Symptom und nicht die Ursache behoben ist. Warum es ausgerechnet nur mit Hostname & Chrome ein Problem gab, ergibt für mich einfach keinen Sinn. (Ein Problem mit DNS Cache hätte ja dazu führen müssen, dass es gar nicht funktioniert?) Aber vielleicht hilft der Tipp mit dem Neustart der Fritte ja dem ein oder anderen.

Auf jeden Fall danke für die Unterstützung. Sollte es nochmal auftauchen oder ich herausfinden, was die Ursache war, melde ich mich.

cbl

Zitat von: AndreAC am 06 September 2023, 19:29:44Gestern Abend konnte ich das Problem nicht mehr rekonstruieren - der Zugriff funktioniert auch per Chrome einwandfrei.

Angerührt habe ich nichts, aber festgestellt, dass die Fritzbox in der Nacht (wegen Update) automatisch neu gestartet wurde. Auf Chrome-Seite hatte ich bereits vorher alles mögliche probiert (Hard Reload, Cache leeren, Inkognito Modus), ohne Effekt.

Ich bin jetzt erstmal froh, dass es funktioniert und markiere den Thread als gelöst - habe aber noch Sorge, dass nur das Symptom und nicht die Ursache behoben ist. Warum es ausgerechnet nur mit Hostname & Chrome ein Problem gab, ergibt für mich einfach keinen Sinn. (Ein Problem mit DNS Cache hätte ja dazu führen müssen, dass es gar nicht funktioniert?) Aber vielleicht hilft der Tipp mit dem Neustart der Fritte ja dem ein oder anderen.

Auf jeden Fall danke für die Unterstützung. Sollte es nochmal auftauchen oder ich herausfinden, was die Ursache war, melde ich mich.

Ich habe das gleiche Problem mit einer anderen seit Jahren problemlos laufenden Anwendung, die ähnlich JS-Anfragen macht. Seit Chrome-Updates im Frühsommer hängt die Anwendung immer wieder und wartet auf freie Sockets. Da sich sonst nichts verändert hat und es mit anderen Browsern flüssig läuft, vermute ich das Problem/ die entscheidende Änderung eher beim Chrome.

Ich bin gespannt, ob du in Kürze das Problem erneut hast.

Gruß
Christian

Icinger

Habe hier auf Ubuntu mit Chrome 116 ziemlich genau das gleiche Thema.

Je "größer" das Device (also je mehr Readings etc), desto länger dauert das Laden der Seite.
Mit Chromium das selbe Spiel.

Mit Firefox ist jede FHEM-Seite ohne spürbarer Verzögerung da. Auch mit Chrome am Android-Phone gibts keine Probleme.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

AndreAC

Das Problem hat sich nach wenigen Tagen wieder eingestellt. Die Beobachtung bleibt gleich: Der Zugriff mit Chrome über den Hostname ist extrem langsam. Über andere Browser und auch über Chrome via IP habe ich hingegen keine Probleme. Interessant ist, dass das Problem nach einem Neustart der Fritzbox kurzzeitig nicht mehr auftritt. Dass es aber mehrere Tage funktioniert, wie in der letzten Woche, konnte ich gar nicht mehr beobachten.

Ich bin mir aber mittlerweile sicher, dass das ein Problem zwischen Fritzbox und Chrome ist, also dass FHEM hier "leidtragend" ist, aber selbst gar keine Rolle spielt. Sollte ich noch was zur Ursache finden, teile ich es gerne mit euch - gerade bin ich aber mit meinem Latein am Ende und habe mir FHEM halt erstmal einfach per IP in die Lesezeichen gesetzt.

(Was den Zugriff auf große Devices angeht etc. konnte ich das in der Vergangenheit auch beobachten, aber eben nicht nur im Zusammenhang mit Chrome. Das scheint aktuell tatsächlich dadurch gelöst zu sein, dass ich die piVCCU auf einen eigenen Raspberry umgezogen habe. Auf dem FHEM-Pi läuft jetzt nur noch FHEM selbst, Phoscon und eine MariaDB für Logs & Zählerstände, FHEM und die Datenbank dazu auf einer SSD statt auf der SD-Karte.)