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
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.