Im Moment macht mir aber folgendes Problem aus Post #5.115 mehr Sorgen.
Hast Du dazu eine Lösung?
Im Moment macht mir aber folgendes Problem aus Post #5.115 mehr Sorgen.
Hast Du dazu eine Lösung?
nein, ohne Fehlermeldung und ohne das ich es hier reproduzieren kann fällt mir dazu gerade nichts ein
nein, ohne Fehlermeldung und ohne das ich es hier reproduzieren kann fällt mir dazu gerade nichts ein
Wo müsste ein Fehler geloggt werden?
Hallo horchi
Ich habe das Verhalten der Webseite jetzt mal längere Zeit beobachtet.
Zu jeder vollen Minute wird anscheinend die Webseite neu aufgebaut.
Zu jeder vollen Minute zuckt die Webseite.
Sprich, sie ist meist kurz weg und dann wieder zu sehen.
Je nachdem, welches Menü man offen hat, ist das Verhalten leicht unterschiedlich.
Verhalten bei angezeigtem Menü:
"Dash": Der Inhalt der Widgets zuckt, die Webseite bleibt aber immer zu sehen
"Charts": Webseite zuckt, danach ist der komplette Inhalt weg, die Seite ist leer
"Schema": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Service Menü": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Fehler": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Pellets": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Setup": Webseite zuckt, ist kurz weg und dann wieder zu sehen
Bei "Setup" gibt es unterschiede, je nachdem, welches Untermenü geöffnet ist.
Verhalten bei angezeigtem Setup-Untermenü:
"Konfiguration": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"IO Setup": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"User": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Alerts": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Baugruppen": Webseite zuckt, ist kurz weg und dann wieder zu sehen
"Syslog": Webseite zuckt, ist dauerhaft weg und erzeugt Error "Unexpected action"
"Database": Webseite zuckt, ist dauerhaft weg und erzeugt Error "Unexpected action"
"Commands": Webseite zuckt, ist kurz weg und dann wieder zu sehen, aber danach fehlt die untere Menüleiste
"Wifi": Webseite zuckt, ist dauerhaft weg und erzeugt Error "Unexpected action"
"System Services": Webseite zuckt, ist dauerhaft weg und erzeugt Error "Unexpected action"
Beispiele:
Wo müsste ein Fehler geloggt werden?
Kandidaten sind immer wieder das log des p4d und die Browser Konsole
Zu jeder vollen Minute zuckt die Webseite.
Sprich, sie ist meist kurz weg und dann wieder zu sehen.
hört sich nach einem Reconnect an, was kommt dabei an der Browser Konsole? Die Timings hast du dir sicher angesehen - hatte ich dafür zur weiteren Analyse eingebaut.
Wo müsste ein Fehler geloggt werden?
Kandidaten sind immer wieder das log des p4d und die Browser Konsole
Im p4d-Log steht dazu nichts.
Im WebIF unter
Setup > Konfiguration > Daemon > Log Eloquence
ist alles aus.
Muss ich da was aktivieren?
Zu jeder vollen Minute zuckt die Webseite.
Sprich, sie ist meist kurz weg und dann wieder zu sehen.
hört sich nach einem Reconnect an, was kommt dabei an der Browser Konsole? Die Timings hast du dir sicher angesehen - hatte ich dafür zur weiteren Analyse eingebaut.
Browser Konsole? Sagt mir im Moment nichts.
Timings? Nö, sagt mir im Moment auch nichts.
Browser Konsole? Sagt mir im Moment nichts.
hier (sorry nachdem ich das letztens entdeckt habe wollte ich es auch mal verwenden - jetzt hat es doch getroffen )
Timings? Nö, sagt mir im Moment auch nichts.
schau mal hier da hatte ich das erläutert, vielleicht hat ja jemand Lust und Zeit das im github Wiki zu verewigen
Browser Konsole? Sagt mir im Moment nichts.
hier (sorry nachdem ich das letztens entdeckt habe wollte ich es auch mal verwenden - jetzt hat es doch getroffen
)
Erwischt.
Danke, Google kannte ich noch nicht.
Hier der Inhalt der Browser Konsole nach 2 Minuten:
passkeys.js:211 Cannot override navigator.credentials: TypeError: Object.defineProperty called on non-object
at Object.defineProperty (<anonymous>)
at passkeys.js:204:16
at passkeys.js:213:3
jquery-migrate-3.0.0.min.js:2 JQMIGRATE: Migrate is installed, version 3.0.0
main.js:71 kioskMode null heightFactor null
main.js:72 dashboardGroup : 0
main.js:75 currentPage: dashboard
main.js:76 startPage: null
main.js:127 try socket opened p4d
main.js:134 socket opened p4d
main.js:792 ---- switch to dashboard
main.js:669 ---- prepareMenu: dashboard
main.js:198 Warning: Reconnecting web socket due to timeout, last keep alive was 4915 ms ago
main.js:134 socket opened p4d
main.js:792 ---- switch to dashboard
main.js:669 ---- prepareMenu: dashboard
main.js:198 Warning: Reconnecting web socket due to timeout, last keep alive was 4946 ms ago
main.js:134 socket opened p4d
main.js:792 ---- switch to dashboard
main.js:669 ---- prepareMenu: dashboard
Display More
Timings? Nö, sagt mir im Moment auch nichts.
schau mal hier da hatte ich das erläutert, vielleicht hat ja jemand Lust und Zeit das im github Wiki zu verewigen
Hier meine Einstellung (ist Standard):
Wenn ich Intervall der Aufzeichnung auf 30 setze, dann zuckt die Webseite alle 30 Sekunden.
Die Ursache meines Problems ist also die Aufzeichnung.
soweit so klar, nur was dabei so lange dauert ist die Frage - oder weißt du das schon?
Solltest du es noch nicht wissen:
Dann schau die mal die LoopTimings an
Hier das p4d.log
Was sagt mir das nun?
p4d.log, Log LoopTimings aktiv:
2025-03-18T11:38:47.634002+01:00 froelingp4d85 p4d: duration 'loop total' was (6588ms)
2025-03-18T11:38:47.633685+01:00 froelingp4d85 p4d: duration 'afterUpdate' was (5031ms)
2025-03-18T11:38:47.632977+01:00 froelingp4d85 p4d: duration 'P4d::calcStateDuration (as part of afterUpdate)' was (2789ms)
2025-03-18T11:38:44.844382+01:00 froelingp4d85 p4d: duration 'P4d::updateErrors (as part of afterUpdate)' was (2241ms)
2025-03-18T11:38:42.602314+01:00 froelingp4d85 p4d: duration 'updateInputs' was (1ms)
2025-03-18T11:38:42.601798+01:00 froelingp4d85 p4d: duration 'storeSamples' was (46ms)
2025-03-18T11:38:42.556546+01:00 froelingp4d85 p4d: duration 'process' was (0ms)
2025-03-18T11:38:42.556360+01:00 froelingp4d85 p4d: duration 'updateScriptSensors' was (1ms)
2025-03-18T11:38:42.546167+01:00 froelingp4d85 p4d: duration 'updateSensors' was (1499ms)
2025-03-18T11:38:42.545992+01:00 froelingp4d85 p4d: duration 'P4d::updateSensors' was (1499ms)
2025-03-18T11:38:41.046519+01:00 froelingp4d85 p4d: duration 'updateWeather' was (0ms)
2025-03-18T11:38:41.046111+01:00 froelingp4d85 p4d: duration 'updateInputs' was (0ms)
2025-03-18T11:37:48.118189+01:00 froelingp4d85 p4d: duration 'loop total' was (7060ms)
2025-03-18T11:37:48.118074+01:00 froelingp4d85 p4d: duration 'afterUpdate' was (5369ms)
2025-03-18T11:37:48.117887+01:00 froelingp4d85 p4d: duration 'P4d::calcStateDuration (as part of afterUpdate)' was (2810ms)
2025-03-18T11:37:45.308454+01:00 froelingp4d85 p4d: duration 'P4d::updateErrors (as part of afterUpdate)' was (2558ms)
2025-03-18T11:37:42.748625+01:00 froelingp4d85 p4d: duration 'updateInputs' was (0ms)
2025-03-18T11:37:42.748255+01:00 froelingp4d85 p4d: duration 'storeSamples' was (59ms)
2025-03-18T11:37:42.689826+01:00 froelingp4d85 p4d: duration 'process' was (0ms)
2025-03-18T11:37:42.689582+01:00 froelingp4d85 p4d: duration 'updateScriptSensors' was (2ms)
2025-03-18T11:37:42.677946+01:00 froelingp4d85 p4d: duration 'updateSensors' was (1619ms)
2025-03-18T11:37:42.677720+01:00 froelingp4d85 p4d: duration 'P4d::updateSensors' was (1619ms)
2025-03-18T11:37:41.058691+01:00 froelingp4d85 p4d: duration 'updateWeather' was (0ms)
2025-03-18T11:37:41.058401+01:00 froelingp4d85 p4d: duration 'updateInputs' was (0ms)
Display More
damit läuft er in den Timeout.
kommt mir sehr langsam vor. Habe mir das Statement dazu nochmal angesehen das läuft über einen Index und das ganze dauert hier nur 300-400 ms
Vermutlich schafft deine HW auf der die DB läuft einfach nicht mehr.
Ggf. lohnt sich auch ein Versuch die DB (mysql) Server Settings zu tunen (Buffer Größen etc , je nachdem Wieviel RAM du zur Verfügung hast.) - da gibt es eine Menge Howtos zu. Welten wird das aber nicht bringen.
Ansonsten stell mal den Timeout in der main.js auf 10 Sekunden: var pingTimeoutMs = 10000;
Aktuell hat der Ubuntu 2 GB RAM und 2 CPU-Kerne zugewiesen.
Ich könnte beides erhöhen.
Was ist eher die Bremse der Berechnung? RAM oder CPUs?
beides hilft.
MySql Server seitig habe ich das einstellt:
key_buffer_size = 10M
max_allowed_packet = 1G
thread_stack = 192K
thread_cache_size = 8
max_connections = 200
query_cache_limit = 1M
query_cache_size = 8M
general_log_file = /var/log/mysql/mysql.log
log_warnings = 2
expire_logs_days = 10
max_binlog_size = 100M
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
innodb_buffer_pool_size = 10G
Display More
Aktuell hat der Ubuntu 2 GB RAM und 2 CPU-Kerne zugewiesen.
Ich könnte beides erhöhen.
beides hilft.
Der Ubuntu läuft nun mit 4 GB RAM und 4 CPU-Kerne.
Leider keine Änderung.
Hätte mich auch gewundert, denn die Auslastung von RAM und CPU war vorher schon gering.
2025-03-18T15:32:23.193386+01:00 froelingp4d85 p4d: duration 'loop total' was (7134ms)
2025-03-18T15:32:23.193300+01:00 froelingp4d85 p4d: duration 'afterUpdate' was (5397ms)
2025-03-18T15:32:23.193087+01:00 froelingp4d85 p4d: duration 'P4d::calcStateDuration (as part of afterUpdate)' was (2932ms)
2025-03-18T15:32:20.260651+01:00 froelingp4d85 p4d: duration 'P4d::updateErrors (as part of afterUpdate)' was (2465ms)
2025-03-18T15:32:17.795757+01:00 froelingp4d85 p4d: duration 'updateInputs' was (1ms)
2025-03-18T15:32:17.794897+01:00 froelingp4d85 p4d: duration 'storeSamples' was (57ms)
2025-03-18T15:32:17.738092+01:00 froelingp4d85 p4d: duration 'process' was (0ms)
2025-03-18T15:32:17.737977+01:00 froelingp4d85 p4d: duration 'updateScriptSensors' was (1ms)
2025-03-18T15:32:17.727000+01:00 froelingp4d85 p4d: duration 'updateSensors' was (1668ms)
2025-03-18T15:32:17.726845+01:00 froelingp4d85 p4d: duration 'P4d::updateSensors' was (1668ms)
2025-03-18T15:32:16.059925+01:00 froelingp4d85 p4d: duration 'updateWeather' was (0ms)
2025-03-18T15:32:16.059585+01:00 froelingp4d85 p4d: duration 'updateInputs' was (0ms)
Display More
Was mir aber aufgefallen ist, ist die Größe der Tabelle samples
Siehe auch hier.
Beim alten p4d war samples 1,68 GB groß und hatte 28.614.145 Datensätze.
Beim neuen p4d ist samples 5,26 GB groß und hat 101.279.381 Datensätze.
Kann das evtl. die Ursache sein?
Ich habe die Backup-SQL-Datei vom alten p4d im neuen p4d importiert.
Kann beim Import was passiert sein? Vll. mehrfache Datensätze?
Mehr Datensätze -> langsamer.
was vom RAM gibst du denn dem Mysql Server?
beides hilft.
MySql Server seitig habe ich das einstellt:
CodeDisplay Morekey_buffer_size = 10M max_allowed_packet = 1G thread_stack = 192K thread_cache_size = 8 max_connections = 200 query_cache_limit = 1M query_cache_size = 8M general_log_file = /var/log/mysql/mysql.log log_warnings = 2 expire_logs_days = 10 max_binlog_size = 100M character-set-server = utf8mb4 collation-server = utf8mb4_general_ci innodb_buffer_pool_size = 10G
Wie kann ich diese Parameter abfragen?
Ist das ein SHOW-Befehl?
Welcher?
Don’t have an account yet? Register yourself now and be a part of our community!