GDS: Perfmon: possible freeze durch GDS?

Begonnen von FhemPiUser, 18 Februar 2016, 20:34:07

Vorheriges Thema - Nächstes Thema

FhemPiUser

Hallo,

ich bekomme immer genau wenn der GDS ein rereadcfg und ein get alerts durchführt Verzögerungen vom perfmon im logfile angezeigt (s.u.). Kennt jemand das Problem und hat eine Lösung?

Definition vom GDS:


define dwd GDS
define readGDS at +*00:30:00 get dwd rereadcfg
define  n_checkGDS notify dwd:REREADALERTS get dwd alerts 103151000


Logfile-Einträge:

2016.02.18 00:52:33 1: Perfmon: possible freeze starting at 00:52:30, delay is 3.002
2016.02.18 01:22:33 1: Perfmon: possible freeze starting at 01:22:30, delay is 3.202
2016.02.18 01:52:33 1: Perfmon: possible freeze starting at 01:52:30, delay is 3.051
2016.02.18 02:22:33 1: Perfmon: possible freeze starting at 02:22:30, delay is 3.121
2016.02.18 02:52:33 1: Perfmon: possible freeze starting at 02:52:30, delay is 3.314
2016.02.18 03:22:33 1: Perfmon: possible freeze starting at 03:22:30, delay is 3.728
2016.02.18 03:52:32 1: Perfmon: possible freeze starting at 03:52:30, delay is 2.951
2016.02.18 04:22:32 1: Perfmon: possible freeze starting at 04:22:30, delay is 2.747
2016.02.18 04:52:32 1: Perfmon: possible freeze starting at 04:52:29, delay is 3.657
2016.02.18 05:22:33 1: Perfmon: possible freeze starting at 05:22:30, delay is 3.044
2016.02.18 05:52:32 1: Perfmon: possible freeze starting at 05:52:30, delay is 2.881
2016.02.18 06:22:32 1: Perfmon: possible freeze starting at 06:22:29, delay is 3.225
2016.02.18 06:45:50 1: Perfmon: possible freeze starting at 06:45:49, delay is 1.543
2016.02.18 06:49:21 1: Perfmon: possible freeze starting at 06:49:20, delay is 1.495
2016.02.18 06:49:28 1: Perfmon: possible freeze starting at 06:49:27, delay is 1.654
2016.02.18 06:52:31 1: Perfmon: possible freeze starting at 06:52:29, delay is 2.991
2016.02.18 07:22:32 1: Perfmon: possible freeze starting at 07:22:29, delay is 3.161
2016.02.18 07:52:32 1: Perfmon: possible freeze starting at 07:52:29, delay is 3.34
2016.02.18 08:22:32 1: Perfmon: possible freeze starting at 08:22:29, delay is 3.257
2016.02.18 08:52:32 1: Perfmon: possible freeze starting at 08:52:29, delay is 3.126
2016.02.18 09:22:32 1: Perfmon: possible freeze starting at 09:22:29, delay is 3.043
2016.02.18 09:52:32 1: Perfmon: possible freeze starting at 09:52:30, delay is 2.469
2016.02.18 14:22:28 1: Perfmon: possible freeze starting at 14:22:27, delay is 1.18
2016.02.18 14:52:28 1: Perfmon: possible freeze starting at 14:52:27, delay is 1.046
2016.02.18 15:22:28 1: Perfmon: possible freeze starting at 15:22:27, delay is 1.146
2016.02.18 15:52:28 1: Perfmon: possible freeze starting at 15:52:27, delay is 1.072
2016.02.18 16:22:28 1: Perfmon: possible freeze starting at 16:22:27, delay is 1.157
2016.02.18 16:52:28 1: Perfmon: possible freeze starting at 16:52:27, delay is 1.207
2016.02.18 17:22:28 1: Perfmon: possible freeze starting at 17:22:27, delay is 1.056
2016.02.18 17:52:28 1: Perfmon: possible freeze starting at 17:52:27, delay is 1.182
2016.02.18 18:22:28 1: Perfmon: possible freeze starting at 18:22:27, delay is 1.28
2016.02.18 18:52:29 1: Perfmon: possible freeze starting at 18:52:28, delay is 1.564
2016.02.18 19:22:30 1: Perfmon: possible freeze starting at 19:22:28, delay is 2.342
2016.02.18 19:52:29 1: Perfmon: possible freeze starting at 19:52:28, delay is 1.883
2016.02.18 20:22:29 1: Perfmon: possible freeze starting at 20:22:28, delay is 1.556
2016.02.18 20:25:30 1: Perfmon: possible freeze starting at 20:25:28, delay is 2.677
2016.02.18 20:25:38 1: Perfmon: possible freeze starting at 20:25:37, delay is 1.631
2016.02.18 20:26:01 1: Perfmon: possible freeze starting at 20:26:00, delay is 1.186

Deudi

Zitat von: FhemPiUser am 18 Februar 2016, 20:34:07
Kennt jemand das Problem und hat eine Lösung?
Ja, alle unterstützenden Dienste, die potentiell blockieren, auf eine extra FHEM Instanz auslagern.
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino, JeeLink DAVIS-Sketch

FhemPiUser

#2
Ich habe gelesen, dass die neue version von GDS non-blocking sein soll (siehe http://forum.fhem.de/index.php/topic,42015.0/nowap.html)

Ich habe folgende Version bei mir installiert:

# $Id: 55_GDS.pm 10644 2016-01-27 15:58:51Z betateilchen $

Im Code steht auch etwas von "nonblocking data retrieval", daher nehme ich an, dass es non-blocking sein sollte. Oder gilt das nur für forecasts? Ich nutze vor allem alerts....


betateilchen

Versuch doch bitte als allererstes herauszufinden, ob das freeze vom rereadcfg ODER vom get alerts kommt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

FhemPiUser

#4
Ich habe den "notify" für das "get alerts" disabled und die freeze-Meldungen kamen trotzdem, es scheint also nicht am "get alerts" zu liegen...

Ich habe folgende at/notifies:

define readGDS at +*00:30:00 get dwd rereadcfg
define n_alerts notify dwd:REREADALERTS get dwd alerts xxx


Zusätzlich habe ich mal ein "get dwd rereadcfg" mit verbose 5 ausgeführt (der "get alerts"-notify war wieder aktiviert) mit folgendem Output:


2016.02.21 14:05:16 4: GDS dwd: ftp connection established.
2016.02.21 14:05:17 4: GDS dwd: filelist found.
2016.02.21 14:05:17 5: GDS dwd: retrieving Z_CAP_C_EDZW_2016022xxx_PVW_STATUS.zip
2016.02.21 14:05:17 5: GDS: ftp transferred 66382 bytes
2016.02.21 14:05:17 4: GDS dwd: deleting /tmp/dwd_alerts.dir/Z_CAP_C_EDZW_2016022xxx_PVW_13.xml
...
2016.02.21 14:05:18 4: GDS dwd: analyzing /tmp/dwd_alerts.dir/Z_CAP_C_EDZW_2016022xxx_PVW_21.xml
2016.02.21 14:05:26 4: GDS dwd: Decoding CAP record #2400
2016.02.21 14:05:26 4: GDS dwd: Decoding CAP record #2600
2016.02.21 14:05:26 1: Perfmon: possible freeze starting at 14:05:24, delay is 2.774


der Delay kommt also ganz am Ende.

betateilchen

Zitat von: FhemPiUser am 21 Februar 2016, 13:07:12
Ich habe den "notify" für das "get alerts" disabled und die freeze-Meldungen kamen trotzdem, es scheint also nicht am "get alerts" zu liegen...
...
der Delay kommt also ganz am Ende.

Die Meldungen "Decoding CAP record" werden ausschließlich bei einem get alerts erzeugt.
Vermutlich hast Du ausser dem notify n_alerts noch weitere get ... alerts in Deiner Installation.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

FhemPiUser

#6
nein, keine weiteren get alerts, nur ein attr gdsUseAlerts 1.

wovon kann der delay kommen?

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

FhemPiUser

#8
hmm, mag sein, dass mein rpi2 an die grenzen kommt, allerdings geht der load nicht über 0.2...