FHEM Forum

FHEM => Frontends => RSS => Thema gestartet von: Raven am 04 September 2015, 18:42:02

Titel: RSS-Modul: Performance-Problem im Tagesverlauf
Beitrag von: Raven am 04 September 2015, 18:42:02
Servus,

ich verwende den HTML-Aufruf /fhem/rss/myrss.html i.V.m der WebViewControl app.
Mit Perform ist mir nun aufgefallen, daß sich im Laufe des Tages die Antwortzeiten verschlechtern und das liegt an dem minütlichen Aufruf des RSS-Moduls.
Mein RSS enthält neben eigenen Temperaturangaben auch 3 kleinere Charts, die den Temperaturverlauf, Öl- und Stromverbrauch des Tages darstellen.
Sollten die zusätzlichen Werte im Tagesverlauf wirklich die Ursache sein, daß sich die Performance im Laufe des Tages verschlechtert?

Oder verwendet Ihr einen anderen (RSS?) Ansatz, um diese Infos auf einem Tablet dauerhaft anzuzeigen.

Das ganze läuft auf einem Cubietruck mit HDD.


Mitternacht:
Zitat2015.09.04 00:05:57.097 1: Perfmon: possible freeze starting at 00:05:55, delay is 2.096
2015.09.04 00:07:00.381 1: Perfmon: possible freeze starting at 00:06:58, delay is 2.38
2015.09.04 00:08:03.275 1: Perfmon: possible freeze starting at 00:08:01, delay is 2.274
2015.09.04 00:09:06.106 1: Perfmon: possible freeze starting at 00:09:04, delay is 2.105
2015.09.04 00:10:09.423 1: Perfmon: possible freeze starting at 00:10:07, delay is 2.423
2015.09.04 00:11:12.431 1: Perfmon: possible freeze starting at 00:11:10, delay is 2.431

Mittags:
Zitat2015.09.04 11:22:41.313 1: Perfmon: possible freeze starting at 11:22:38, delay is 3.312
2015.09.04 11:23:46.503 1: Perfmon: possible freeze starting at 11:23:42, delay is 4.503
2015.09.04 11:24:51.114 1: Perfmon: possible freeze starting at 11:24:47, delay is 4.114
2015.09.04 11:25:56.287 1: Perfmon: possible freeze starting at 11:25:52, delay is 4.287
2015.09.04 11:27:00.661 1: Perfmon: possible freeze starting at 11:26:57, delay is 3.661
2015.09.04 11:28:05.691 1: Perfmon: possible freeze starting at 11:28:02, delay is 3.691
2015.09.04 11:29:10.643 1: Perfmon: possible freeze starting at 11:29:07, delay is 3.643

Abends:
Zitat2015.09.04 17:56:16.796 1: Perfmon: possible freeze starting at 17:56:12, delay is 4.796
2015.09.04 17:56:37.531 1: Perfmon: possible freeze starting at 17:56:33, delay is 4.531
2015.09.04 17:56:42.685 1: Perfmon: possible freeze starting at 17:56:39, delay is 3.684
2015.09.04 17:56:50.734 1: Perfmon: possible freeze starting at 17:56:46, delay is 4.734
2015.09.04 17:56:56.599 1: Perfmon: possible freeze starting at 17:56:52, delay is 4.599
2015.09.04 17:57:04.522 1: Perfmon: possible freeze starting at 17:57:00, delay is 4.522


Titel: Antw:RSS-Modul: Performance-Problem im Tagesverlauf
Beitrag von: Dr. Boris Neubert am 05 September 2015, 14:24:28
Hallo,

das ist nicht ungewöhnlich, da immer mehr Datenpunkte gerendert werden müssen, je später es wird. Dieser Effekt sollte bei Dir auch auftreten, wenn Du die Plots im Browser rendern lässt.

Attribut plotFork zur Parallelisierung könnte helfen, wenn Dein Rechner beim Rendern noch nicht voll ausgelastet ist.

Viele Grüße
Boris
Titel: Antw:RSS-Modul: Performance-Problem im Tagesverlauf
Beitrag von: Raven am 06 September 2015, 11:03:08
Vielen Dank Boris für den Hinweis bzgl. Plotfork!

Alles Plots werden nun rasend schnell im Webfrontend erstellt.
Allerdings meldete Perform auch bereits vor der Plotfork-Aktivierung keine "Hänger" bei den Browser-Aufrufen (nur verständlicherweise im Raum "Everything").

Die Laufzeiten im RSS-Modul sind dagegen unverändert. Nach Deaktivierung der Plots im RSS-Modul fällt mir auf, daß die RSS-Erstellung an sich schon eine hohe Grundlast erzeugt. Mit den Plots benötigt das RSS-Modul ca. 4sec., ohne dagegen bereits ca. 2sec. heute morgen. Ist dies normal? Erzeugen meine restlichen Abfragen so eine hohe Last?

Ich verwende überwiegend diese Art von Abfragen:
Zitatcondition {(ReadingsVal('ANLAGE_STATUS','state','?') eq 'aus')}
rgb "0FF325"
text 10 320 "Alarmanlage aus!"

condition {(ReadingsVal('ANLAGE_STATUS','state','?') eq 'ein')}
rgb "F3210A"
text 10 320 "Alarmanlage ein!"
condition 1

condition { ReadingsVal("Kontakt_Garagentor","state","?") eq "open" }
rgb "FF0000"
moveby 0 20
text 10 y { "Garagentor" }
text 80 y { timedifferenz(ts2text(ReadingsTimestamp("Kontakt_Garagentor","state","?"))) }

moveby 0 20
text 250 y { "Flur" }
text 320 y { ReadingsVal("Heizung_Flur","measured-temp","?")."°C" }
moveby 0 20
text 250 y { "Küche" }
text 320 y { ReadingsVal("Heizung_Kueche","measured-temp","?")."°C" }
moveby 0 20
text 250 y { "EZ" }
text 320 y { ReadingsVal("Heizung_EZ","measured-temp","?")."°C" }
moveby 0 20
text 250 y { "WZ" }
text 320 y { ReadingsVal("Heizung_WZ","measured-temp","?")."°C" }


Mit Plots
Zitat2015.09.06 10:08:27 1: Perfmon: possible freeze starting at 10:08:24, delay is 3.792
2015.09.06 10:09:31 1: Perfmon: possible freeze starting at 10:09:28, delay is 3.814
2015.09.06 10:10:35 1: Perfmon: possible freeze starting at 10:10:32, delay is 3.901

Ohne Plots
Zitat2015.09.06 10:44:30 1: Perfmon: possible freeze starting at 10:44:29, delay is 1.768
2015.09.06 10:45:32 1: Perfmon: possible freeze starting at 10:45:31, delay is 1.853
2015.09.06 10:46:35 1: Perfmon: possible freeze starting at 10:46:34, delay is 1.402