FHEM Forum

FHEM => Automatisierung => Thema gestartet von: reibuehl am 26 Juli 2015, 18:38:51

Titel: Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 26 Juli 2015, 18:38:51
Hallo,

ich verwende zwei Kalender in Fhem die, wenn ich die Ausgabe von apptime richtig interpretiere, schuld daran sind, dass mein Fhem immer wieder sekundenlange Gedenkpausen einlegt:

                                name             function    max  count    total  average maxDly
                 tmr-Calendar_Wakeup       HASH(0xf98c78)   1766    137   211982  1547.31   3014 HASH(GoogleHotelCalendar)
                 tmr-Calendar_Wakeup      HASH(0x1ba4080)   1125    139   144239  1037.69   3097 HASH(Abfall)

Die beiden Kalender sind mit Abstand die beiden Top-Verursacher von Delays.

Der erste Kalender ist ein Google Kalender, der zweite eine in /opt/fhem liegende .ics Datei. Kann ich irgendwie verhindern, dass die beiden Kalender ständig das System kurzzeitig zum Stillstand bringen?

Gruß,
Reiner
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: eldrik am 26 Juli 2015, 20:09:13
Hi,

Ich habe alle potenziellen Verzögerer unter anderem Calendar und diverse Messagingdienste in eine separate fhem Instanz verbannt, diese Binde ich per fhem2fhem an und hole mir die die ausgelagerten Geräte per clonedummy in die Hauptinstanz...

Greetz
Eldrik
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 26 Juli 2015, 20:56:34
Mmmh... das hört sich extrem aufwändig an. Ich hatte gehofft, dass es irgendwie einfacher/eleganter geht.

Kann man irgendwie Debuggen, wo im Modul die Delays auftreten?
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: chris1284 am 26 Juli 2015, 21:18:08
habe 3 googlekalender und einen lokalen und keine stillstände. hast du mal einen neuen erstellt (bei google) und mit dem, nur dem , getestet? ich musste meinen googlekalender auch schon 1-2 mal neu machen weil er rum gesponnen hatte...

leider steht nicht da was du für hardware als server einsetzt
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 26 Juli 2015, 22:02:54
Neu anlegen des Google Kalender habe ich noch nicht versucht. Da aber auch der auf einem lokalen .ics File aufbauende Kalender das gleiche Verhalten zeigt, scheint es ja eher am Modul zu liegen, oder?
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: chris1284 am 27 Juli 2015, 06:30:09
oder deinem system. gefühlt sind es meist die fb oder pi user die blocking probleme haben

wie sieht dein aktualisierungsintervall aus? default ist ja alle 1h, was wohl bei den wenigsten leuten sinn macht außer sie steuern fhem über den calender.
ein anpassen auf zb 24h  würde die delays (im forum ist unter calendar blockieren / blocking einiges dazu zu finden) zu mindest reduzieren.

den test mit einem neuen calender würde ich dennoch machen (geht fix, sind ja nur 2 klicks + ein paar dummy termine und bringt ggf etwas).
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 27 Juli 2015, 07:03:07
Sorry, hatte vergessen das System zu nennen: Nachdem ich mit einem Raspberry Pi B+ die Probleme bemerkt hatte, habe ich das ganze mal auf einem BeagleBoneBlack ausprobiert. Auf beiden Systemen verhält es sich gleich.
Update Intervall bei beiden Kalendern ist der default Wert von 1h. Beim Müllkalender wäre ein längeres Intervall kein Problem. Der Google Kalender ist aber an die Heizungsteuerung gekoppelt, da wäre mir 1h schon ganz recht. Die Freezes im System treten aber bei mir auch deutlich öfter auf als nur 1-2 mal pro Stunde. Eher so gefühlt alle 1-5 Minuten.
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: chris1284 am 27 Juli 2015, 08:04:44
aber so oft aktualisiert der kalender ja nicht somi würde ich die aktualisierung des kalenders nicht als grund sehen. hast du mal das logging erhöht und die logs zu diesen zeitpunkten der freezes durchgeschaut? alle 1-5 minuten muss was anderes sein...

du kannst testweise auch mal die kalender aus der config nehmen (inkl allem wa dazu gehört wie zb die steuerung der heizung ) und schauen die delays dann noch da sind.
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: herrmannj am 27 Juli 2015, 08:36:35
Zitat von: Reiner am 27 Juli 2015, 07:03:07
Eher so gefühlt alle 1-5 Minuten.
Hi

installiere Dir perfmon. Das ist genau dazu da um "gefühlt" zu "gemessen" zu machen :)

vg
joerg
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 27 Juli 2015, 12:48:54
perfmon habe ich bereits installiert:


2015.07.01 00:01:03 1: Perfmon: possible freeze starting at 00:01:00, delay is 3.014
2015.07.01 00:02:07 1: Perfmon: possible freeze starting at 00:02:04, delay is 3.015
2015.07.01 00:03:11 1: Perfmon: possible freeze starting at 00:03:08, delay is 3.014
2015.07.01 00:04:14 1: Perfmon: possible freeze starting at 00:04:12, delay is 2.245
2015.07.01 00:05:18 1: Perfmon: possible freeze starting at 00:05:15, delay is 3.015
2015.07.01 00:06:22 1: Perfmon: possible freeze starting at 00:06:19, delay is 3.017
2015.07.01 00:07:26 1: Perfmon: possible freeze starting at 00:07:23, delay is 3.015
2015.07.01 00:08:30 1: Perfmon: possible freeze starting at 00:08:27, delay is 3.015
2015.07.01 00:09:33 1: Perfmon: possible freeze starting at 00:09:31, delay is 2.455
2015.07.01 00:10:37 1: Perfmon: possible freeze starting at 00:10:34, delay is 3.014
2015.07.01 00:11:41 1: Perfmon: possible freeze starting at 00:11:38, delay is 3.014
2015.07.01 00:12:45 1: Perfmon: possible freeze starting at 00:12:42, delay is 3.015
2015.07.01 00:13:48 1: Perfmon: possible freeze starting at 00:13:46, delay is 2.344
2015.07.01 00:14:52 1: Perfmon: possible freeze starting at 00:14:49, delay is 3.014
2015.07.01 00:15:55 1: Perfmon: possible freeze starting at 00:15:52, delay is 3.074
2015.07.01 00:16:58 1: Perfmon: possible freeze starting at 00:16:56, delay is 2.584
2015.07.01 00:18:02 1: Perfmon: possible freeze starting at 00:17:59, delay is 3.014
2015.07.01 00:18:37 1: Perfmon: possible freeze starting at 00:18:36, delay is 1.05
2015.07.01 00:19:06 1: Perfmon: possible freeze starting at 00:19:03, delay is 3.014
2015.07.01 00:20:10 1: Perfmon: possible freeze starting at 00:20:07, delay is 3.014
2015.07.01 00:21:14 1: Perfmon: possible freeze starting at 00:21:11, delay is 3.014
2015.07.01 00:22:17 1: Perfmon: possible freeze starting at 00:22:15, delay is 2.654
2015.07.01 00:23:21 1: Perfmon: possible freeze starting at 00:23:18, delay is 3.014
2015.07.01 00:24:24 1: Perfmon: possible freeze starting at 00:24:22, delay is 2.244
2015.07.01 00:25:28 1: Perfmon: possible freeze starting at 00:25:25, delay is 3.014
2015.07.01 00:26:32 1: Perfmon: possible freeze starting at 00:26:29, delay is 3.014
2015.07.01 00:27:36 1: Perfmon: possible freeze starting at 00:27:33, delay is 3.014
2015.07.01 00:28:40 1: Perfmon: possible freeze starting at 00:28:37, delay is 3.014
2015.07.01 00:29:44 1: Perfmon: possible freeze starting at 00:29:41, delay is 3.014
2015.07.01 00:30:48 1: Perfmon: possible freeze starting at 00:30:45, delay is 3.014
2015.07.01 00:31:52 1: Perfmon: possible freeze starting at 00:31:49, delay is 3.014
2015.07.01 00:32:56 1: Perfmon: possible freeze starting at 00:32:53, delay is 3.014
2015.07.01 00:34:00 1: Perfmon: possible freeze starting at 00:33:57, delay is 3.014
2015.07.01 00:35:04 1: Perfmon: possible freeze starting at 00:35:01, delay is 3.014
2015.07.01 00:36:08 1: Perfmon: possible freeze starting at 00:36:05, delay is 3.014
2015.07.01 00:37:11 1: Perfmon: possible freeze starting at 00:37:09, delay is 2.435
2015.07.01 00:38:14 1: Perfmon: possible freeze starting at 00:38:12, delay is 2.974
2015.07.01 00:39:18 1: Perfmon: possible freeze starting at 00:39:15, delay is 3.014
2015.07.01 00:40:21 1: Perfmon: possible freeze starting at 00:40:19, delay is 2.494
2015.07.01 00:41:25 1: Perfmon: possible freeze starting at 00:41:22, delay is 3.014
2015.07.01 00:42:28 1: Perfmon: possible freeze starting at 00:42:26, delay is 2.834
2015.07.01 00:43:32 1: Perfmon: possible freeze starting at 00:43:29, delay is 3.014
2015.07.01 00:44:36 1: Perfmon: possible freeze starting at 00:44:33, delay is 3.014
2015.07.01 00:45:40 1: Perfmon: possible freeze starting at 00:45:37, delay is 3.014
2015.07.01 00:46:44 1: Perfmon: possible freeze starting at 00:46:41, delay is 3.014
2015.07.01 00:47:48 1: Perfmon: possible freeze starting at 00:47:45, delay is 3.014
2015.07.01 00:48:52 1: Perfmon: possible freeze starting at 00:48:49, delay is 3.013
2015.07.01 00:49:56 1: Perfmon: possible freeze starting at 00:49:53, delay is 3.014
2015.07.01 00:50:59 1: Perfmon: possible freeze starting at 00:50:57, delay is 2.344
2015.07.01 00:52:03 1: Perfmon: possible freeze starting at 00:52:00, delay is 3.014
2015.07.01 00:53:07 1: Perfmon: possible freeze starting at 00:53:04, delay is 3.014
2015.07.01 00:54:11 1: Perfmon: possible freeze starting at 00:54:08, delay is 3.013
2015.07.01 00:55:15 1: Perfmon: possible freeze starting at 00:55:12, delay is 3.014
2015.07.01 00:56:19 1: Perfmon: possible freeze starting at 00:56:16, delay is 3.014
2015.07.01 00:57:22 1: Perfmon: possible freeze starting at 00:57:20, delay is 2.574
2015.07.01 00:58:26 1: Perfmon: possible freeze starting at 00:58:23, delay is 3.014
2015.07.01 00:59:29 1: Perfmon: possible freeze starting at 00:59:27, delay is 2.544
2015.07.01 01:00:32 1: Perfmon: possible freeze starting at 01:00:30, delay is 2.774
2015.07.01 01:01:36 1: Perfmon: possible freeze starting at 01:01:33, delay is 3.013
2015.07.01 01:02:40 1: Perfmon: possible freeze starting at 01:02:37, delay is 3.104
2015.07.01 01:03:44 1: Perfmon: possible freeze starting at 01:03:41, delay is 3.014
2015.07.01 01:04:48 1: Perfmon: possible freeze starting at 01:04:45, delay is 3.014
2015.07.01 01:05:52 1: Perfmon: possible freeze starting at 01:05:49, delay is 3.014
2015.07.01 01:06:56 1: Perfmon: possible freeze starting at 01:06:53, delay is 3.014
2015.07.01 01:08:00 1: Perfmon: possible freeze starting at 01:07:57, delay is 3.014
2015.07.01 01:09:04 1: Perfmon: possible freeze starting at 01:09:01, delay is 3.014
2015.07.01 01:10:07 1: Perfmon: possible freeze starting at 01:10:05, delay is 2.264
2015.07.01 01:11:11 1: Perfmon: possible freeze starting at 01:11:08, delay is 3.014
2015.07.01 01:12:15 1: Perfmon: possible freeze starting at 01:12:12, delay is 3.014
2015.07.01 01:13:19 1: Perfmon: possible freeze starting at 01:13:16, delay is 3.014
2015.07.01 01:14:23 1: Perfmon: possible freeze starting at 01:14:20, delay is 3.014
2015.07.01 01:15:27 1: Perfmon: possible freeze starting at 01:15:24, delay is 3.014
2015.07.01 01:16:30 1: Perfmon: possible freeze starting at 01:16:28, delay is 2.325
2015.07.01 01:17:34 1: Perfmon: possible freeze starting at 01:17:31, delay is 3.014
2015.07.01 01:18:38 1: Perfmon: possible freeze starting at 01:18:35, delay is 3.014

Das ist mehr oder weniger im Minutentakt.

Da ich im Forum gelesen habe, das einem Perfmon sagen kann, ob etwas blockt, man dann aber apptime verwenden soll um herauszufinden, was blockt bin ich dort eben auf die beiden Kalender gestoßen.
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: herrmannj am 27 Juli 2015, 13:54:19
Ja genau. Alles richtig gemacht. Der freeze ist ja super regelmäßig. Mach doch mal einen gegen check indem du beide Kalender raus nimmst.

Entweder disable wenn das Modul das unterstützt oder sonst ausnahmsweise in der cfg löschen. Vorher ein Backup der cfg machen !

Vg
Joerg
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 27 Juli 2015, 15:22:18
Ich habe die beiden Kalender mal in eine eigene Konfigurationsdatei verlegt und das include dazu auskommentiert. Leider scheint das keinen Einfluss auf die von Perfmon angezeigten Delays zu haben:

2015.07.27 15:03:37 1: Perfmon: possible freeze starting at 15:03:34, delay is 3.007
2015.07.27 15:03:46 1: Perfmon: possible freeze starting at 15:03:42, delay is 4.31
2015.07.27 15:04:40 1: Perfmon: possible freeze starting at 15:04:38, delay is 2.337
2015.07.27 15:05:22 1: Perfmon: possible freeze starting at 15:05:19, delay is 3.74
2015.07.27 15:05:44 1: Perfmon: possible freeze starting at 15:05:41, delay is 3.006
2015.07.27 15:06:48 1: Perfmon: possible freeze starting at 15:06:45, delay is 3.006
2015.07.27 15:07:52 1: Perfmon: possible freeze starting at 15:07:49, delay is 3.006
2015.07.27 15:08:56 1: Perfmon: possible freeze starting at 15:08:53, delay is 3.006
2015.07.27 15:10:00 1: Perfmon: possible freeze starting at 15:09:57, delay is 3.006
2015.07.27 15:11:04 1: Perfmon: possible freeze starting at 15:11:01, delay is 3.006
2015.07.27 15:12:07 1: Perfmon: possible freeze starting at 15:12:05, delay is 2.347
2015.07.27 15:13:11 1: Perfmon: possible freeze starting at 15:13:08, delay is 3.006

Mist! Damit könnte es wohl an was anderem liegen, obwohl die apptime Werte für die Kalender sprachen.

Nach ca. 15 Minuten sieht apptime so aus:

                                name             function    max  count    total  average maxDly
                          FBPWRL546E          FBAHA_Ready   3006     91     3006    33.03      0 HASH(FBPWRL546E)
                              HMLAN1           HMLAN_Read    168     10      775    77.50      0 HASH(HMLAN1)
                              HMLAN2           HMLAN_Read     79      9      222    24.67      0 HASH(HMLAN2)
                          n_batt_chk          notify_Exec     16     10       26     2.60      0 HASH(n_batt_chk); HASH(OG_AZ_ThermostatDisplay_Climate)
                                 WEB              FW_Read      8     10       27     2.70      0 HASH(WEB)
                            HMCFGUSB          HMLAN_Ready      7     91        8     0.09      0 HASH(HMCFGUSB)
         tmr-FW_closeInactiveClients                           6      1        6     6.00      6
         FHEMWEB:192.168.1.105:54168              FW_Read      5      4       18     4.50      0 HASH(FHEMWEB:192.168.1.105:54168)
         FHEMWEB:192.168.1.105:54169              FW_Read      5      3       14     4.67      0 HASH(FHEMWEB:192.168.1.105:54169)
         FHEMWEB:192.168.1.105:54171              FW_Read      5      3        9     3.00      0 HASH(FHEMWEB:192.168.1.105:54171)
         FHEMWEB:192.168.1.105:54172              FW_Read      5      3       13     4.33      0 HASH(FHEMWEB:192.168.1.105:54172)
         FHEMWEB:192.168.1.105:54173              FW_Read      5      3       13     4.33      0 HASH(FHEMWEB:192.168.1.105:54173)
         FHEMWEB:192.168.1.105:54175              FW_Read      5      2        9     4.50      0 HASH(FHEMWEB:192.168.1.105:54175)
         FHEMWEB:192.168.1.105:54176              FW_Read      5      2        9     4.50      0 HASH(FHEMWEB:192.168.1.105:54176)
         FHEMWEB:192.168.1.105:54174              FW_Read      4      2        8     4.00      0 HASH(FHEMWEB:192.168.1.105:54174)
                    FileLog_OG_Licht          FileLog_Log      4     10       24     2.40      0 HASH(FileLog_OG_Licht); HASH(OG_WZ_Thermostat_Clima)
                          eventTypes    eventTypes_Notify      4     10       24     2.40      0 HASH(eventTypes); HASH(OG_WZ_Thermostat_Clima)
                  FileLog_OG_Heizung          FileLog_Log      3     10       17     1.70      0 HASH(FileLog_OG_Heizung); HASH(OG_WZ_Thermostat_Clima)
                       RolllaedenAuf          notify_Exec      3     10       18     1.80      0 HASH(RolllaedenAuf); HASH(OG_WZ_Thermostat_Clima)
                        RolllaedenZu          notify_Exec      3     10       18     1.80      0 HASH(RolllaedenZu); HASH(OG_WZ_Thermostat_Clima)
                 tmr-HMLAN_KeepAlive     keepAlive:HMLAN2      3      1        3     3.00   2068 keepAlive:HMLAN2

Das FBPWRL546E kann es eigentlich auch nicht sein, da die Freezes schon länger vorhanden sind als dieses Device.
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: herrmannj am 27 Juli 2015, 19:29:45
Hi,

ja, manchmal sind die Sachen anders als wie sie scheinen.

Das mit dem include, mach's später wieder rückgängig. Auf Dauer nix gut -  die cfg soll fhem schreiben und gut iss.

Jetzt zur Fehlersuche aber ok.

Vielleicht fällt Dir ja was ein - muss eine Funktion sein die regelmäßig jede Minute zuschlägt.

Wenn nein könntest Du anfangen aus der Test cfg (original aufheben!) jeweils eine Funktion nach der anderen auszukommentieren. Von Selfmade + exotisch nach common. Denk an eigene at und notify.

Da der freeze ja regelmäßig  auftritt braucht man ja auch nicht lange warten um das Ergebnis zu überprüfen. Stell evtl auch verbose in global auf 4 (oder 5), dann landet mehr im log. Da ergibt sich vielleicht auch ein Hinweis.

vg
joerg
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: reibuehl am 27 Juli 2015, 21:11:11
Langsam falle ich vom Glauben ab: Ich habe Verbose auf 4 gesetzt und die Perfmon Meldungen im Minutentakt sind weg! Selbst nach einem restart mit Verbose 3 nicht mehr. Die Freezes in FHEMWEB sind aber weiter da. So ca. alle 1-2 Minuten friert die Weboberfläche für einige Sekunden ein.
Titel: Antw:Delays im Calendar Modul verhindern?
Beitrag von: herrmannj am 27 Juli 2015, 21:25:41
das ist komisch. Verbose hat keine Auswirkungen auf perfmon. Wenn Du die freeze im Web weiterhin merkst, nur verbose und sonst nix geändert hast dann würde ich annehmen das perfmon schlicht nicht mehr läuft.

Da perfmon automatisch geladen wird hat auch die cfg keinen Einfluss, es (perfmon) muss sich nur im modul-dir befinden.

Die freeze waren (sind) mit drei Sekunden ja auch recht ausgeprägt. (perfmon zeigt ab 1000 msec an).

Kann Dir von hier aus keinen konkreten Tip geben - klingt aber in der Tat sehr nach "da passt was nicht"

vg
joerg