fhem freeze durch HourCounter ???

Begonnen von didi-fritz, 30 Dezember 2017, 17:24:24

Vorheriges Thema - Nächstes Thema

didi-fritz

Hallo,

mir fällt immer wieder auf, dass FHEM für einige Sekunden einfriert.
Es sind die Web-Oberfäche als auch diverse Steuerungen (events lösen Aktionen aus) davon betroffen.

Ich hab nun mit PerfMon und apptime analysiert.

Die von PerfMon erkannten freezes waren vorwiegend im 5 Minuten-Takt
2017.12.30 10:09:19 2: Perfmon: ready to watch out for delays greater than one second
2017.12.30 10:10:02 1: Perfmon: possible freeze starting at 10:10:01, delay is 1.633
2017.12.30 10:15:02 1: Perfmon: possible freeze starting at 10:15:01, delay is 1.657
2017.12.30 10:20:02 1: Perfmon: possible freeze starting at 10:20:01, delay is 1.5
2017.12.30 10:25:02 1: Perfmon: possible freeze starting at 10:25:01, delay is 1.606
2017.12.30 10:30:02 1: Perfmon: possible freeze starting at 10:30:01, delay is 1.934
2017.12.30 10:33:13 1: Perfmon: possible freeze starting at 10:33:12, delay is 1.999
2017.12.30 10:35:02 1: Perfmon: possible freeze starting at 10:35:01, delay is 1.924
2017.12.30 10:40:02 1: Perfmon: possible freeze starting at 10:40:01, delay is 1.529
2017.12.30 10:45:02 1: Perfmon: possible freeze starting at 10:45:01, delay is 1.959

und apptime avgDly zeigt mir als Top-Werte meine HourCounter an
apptime  avgDly
active-timers: 161; max-active timers: 167; max-timer-load: 30  min-tmrHandlingTm: 2.0ms; max-tmrHandlingTm: 6856.6ms; totAvgDly: 482.7ms
min-timersortTm: 1.7ms; max-timersortTm: 21.0ms

name                                     function                               max    count      total  average   maxDly   avgDly TS Max call     param Max call
tmr-HourCounter_Run                      hc_TvWz                                313       25    4151.34   166.05  5015.21  1709.96 30.12. 16:20:06 hc_TvWz
tmr-HourCounter_Run                      hc_L_Kueche_Fenster                    289       25    3896.07   155.84  4805.05  1600.45 30.12. 16:20:05 hc_L_Kueche_Fenster
tmr-HourCounter_Run                      hc_L_Gartenhaus                        287       25    3914.94   156.60  4661.79  1521.09 30.12. 16:20:05 hc_L_Gartenhaus
tmr-HourCounter_Run                      hc_L_Terrasse                          289       25    3897.49   155.90  4436.45  1500.40 30.12. 16:20:02 hc_L_Terrasse
tmr-HourCounter_Run                      hc_L_WZ_Sofa                           298       25    3897.29   155.89  4146.78  1456.01 30.12. 16:20:01 hc_L_WZ_Sofa
tmr-HourCounter_Run                      hc_L_Dach                              288       25    3975.74   159.03  5558.13  1444.34 30.12. 16:20:06 hc_L_Dach
tmr-HourCounter_Run                      hc_Sonne                               287       24    3317.00   138.21  4274.76  1427.10 30.12. 16:20:03 hc_Sonne
tmr-HourCounter_Run                      hc_Internet                            288       25    3795.79   151.83  4231.66  1417.77 30.12. 16:20:04 hc_Internet
tmr-HourCounter_Run                      hc_L_Sandra_N                          289       25    3879.88   155.20  5289.69  1411.62 30.12. 16:20:06 hc_L_Sandra_N
tmr-HourCounter_Run                      hc_L_WZ_Stehlampe                      293       25    3918.48   156.74  3986.21  1405.83 30.12. 16:20:03 hc_L_WZ_Stehlampe
tmr-HourCounter_Run                      hc_TvSz                                288       25    3798.90   151.96  3535.32  1392.84 30.12. 16:20:01 hc_TvSz
tmr-HourCounter_Run                      hc_L_Sandra_S                          291       25    3894.23   155.77  4884.32  1375.85 30.12. 16:20:05 hc_L_Sandra_S
tmr-HourCounter_Run                      hc_L_WZ_Kasten                         305       25    3940.53   157.62  4053.49  1366.17 30.12. 15:25:00 hc_L_WZ_Kasten
tmr-HourCounter_Run                      hc_AD_Garage                           292       25    3919.22   156.77  3536.84  1357.90 30.12. 13:35:02 hc_AD_Garage
tmr-HourCounter_Run                      hc_L_WZ_Tisch                          288       25    3876.29   155.05  4378.88  1347.77 30.12. 16:20:03 hc_L_WZ_Tisch
tmr-HourCounter_Run                      hc_L_Vorraum                           295       25    3909.81   156.39  3773.64  1343.43 30.12. 14:30:01 hc_L_Vorraum
tmr-HourCounter_Run                      hc_L_Kueche_Mitte                      288       25    3810.75   152.43  4910.58  1338.12 30.12. 16:20:05 hc_L_Kueche_Mitte
tmr-HourCounter_Run                      hc_IpCamPower                          294       25    3940.65   157.63  3619.91  1336.06 30.12. 13:35:01 hc_IpCamPower
tmr-HourCounter_Run                      hc_Rain                                287       25    3895.09   155.80  4460.09  1308.06 30.12. 16:20:02 hc_Rain
tmr-HourCounter_Run                      hc_AD_Eingangstuer                     288       25    3924.67   156.99  4942.64  1300.36 30.12. 16:20:03 hc_AD_Eingangstuer
tmr-HourCounter_Run                      hc_Ventilator                          288       25    3946.62   157.86  3926.14  1292.75 30.12. 16:20:00 hc_Ventilator
tmr-HourCounter_Run                      hc_L_Stiege                            287       25    3914.19   156.57  5102.32  1227.67 30.12. 16:20:02 hc_L_Stiege
tmr-DOIF_TimerTrigger                    REF(0x3d2d988)                         121        1     121.11   121.11   461.47   461.47 30.12. 14:30:00 REF(0x3d2d988)
tmr-at_Exec                              HASH(0x27e51a0)                          2        1       2.67     2.67   434.85   434.85 30.12. 16:30:00 HASH(a_Boiler_E)


bei meinen HourCountern verwende ich das Attribut intervall mit dem Wert 5 Minuten (passt also zusammen).
Zum Testen hab ich nun in meinen HourCountern das intervall auf 55 Minuten gestellt. Nun sind auch die freezes alle 55 Minuten, jedoch hat sich die freeze-time von ca. 1.9 auf 5.5 sec erhöht ...
2017.12.30 12:00:06 1: Perfmon: possible freeze starting at 12:00:01, delay is 5.438
2017.12.30 12:40:04 1: Perfmon: possible freeze starting at 12:40:01, delay is 3.055
2017.12.30 13:35:06 1: Perfmon: possible freeze starting at 13:35:01, delay is 5.605
2017.12.30 14:30:06 1: Perfmon: possible freeze starting at 14:30:01, delay is 5.817
2017.12.30 15:25:05 1: Perfmon: possible freeze starting at 15:25:01, delay is 4.855
2017.12.30 16:00:01 1: Perfmon: possible freeze starting at 16:00:00, delay is 1.13
2017.12.30 16:20:06 1: Perfmon: possible freeze starting at 16:20:01, delay is 5.861



Habt ihr dieses Verhalten auch schon beobachtet?
Kann ich irgendwas Umkonfigurieren, so dass HourCounter seine intervall-Berechnungen asyncron macht?
FHEM-Update hab ich heute schon durchgeführt.

Danke
Didi


Amenophis86

Wenn HourCounter blocking programmiert wurde, dann kannst du nur den Modulauthor fragen, ob er es auf non-blocking ändert, selbst einen Patch schreiben, oder es in eine zweite FHEM Instanz auslagern und der Haupt-Instanz das Ergebnis schicken.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...