FHEM Web Zugriff unglaublich langsam

Begonnen von lurchi, 22 Januar 2015, 10:41:02

Vorheriges Thema - Nächstes Thema

lurchi

Hallo Forum,

hoffentlich könnt Ihr mir helfen.
Ich habe bei mir FHEM + fhemWEB auf einen meinem Keller-Server (debian wheezy, Core i5, 8GB Ram, SSD Platte) laufen und sammle die die Daten meiner 18 Homematic-Komponenten via einem HMLAN Adapter ein. Die Daten werden in einer MYSQL DB noch für andere Auswertungszwecke gespeichert.
Vor ca. 6 Monaten lief das ganze auch schön rund. Nur mittlerweile ist das WEB UI sterbenslangsam (Aufbau der ersten Seite dauert 6 Minuten)

Kennt das Problem jemand von Euch und wie kann ich den "zeitfresser" identifizieren? Gibt es einen Trace/Debug switch, der die Zeiten loggt?
"top" zeigt in der Wartezeit auf eine Rückmeldung des WEB UI keinen "verdächtigen Prozess als permanent arbeitend an (perl taucht ab und zu auf)
Der Actiondetector zeigt alle Kompoenten als Alive an.
Ich vermute mal, das es mit der puren Menge an LOG-Daten zu tun hat. Der Zugriff auf dem MySQL Server findet ja nur schreibend statt, wenn neue Daten eintreffen.

Viele Grüße und Dank im Voraus!

Hans-Jörg

strauch

apptime kann helfen Zeitfresser zu finden. Mit dem ersten Aufruf wirds gestartet.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

rudolfkoenig

Wenn ein Core i5 6 Minuten fuer ein Plot braucht, dann muss was fuerchterlich schiefgegangen sein.
Ich wuerde "attr global verbose 5" setzen, ein Seiten-Refresh ausloesen, und danach das fhem-log studieren.

marcus42

Einfach mal ein Schuss in Blaue:

Vielleicht fehlt ein passender Index auf die verwendete MySQL Tabelle?

VG
Marcus

Wuppi68

logst Du in current und history?

Current wird immer träger :-(
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

lurchi

Hallo,

vielen Dank für Eure Hinweise.

Im LOG (verbose level auf 5) habe ich gesehen, das dbLOG ~2Sekunden pro Insert braucht.
Ich habe die Datenbank entschlackt (habe aus "history" alles was älter als 30 Tage in eine "history_bak" tabelle verschoben. Damit sollte der Insert in die DB schneller werden...

Hier mal apptime output:
name             function    max  count    total  average maxDly
HMLAN1           HMLAN_Read  62669    927 21864848 23586.68      0 HASH(HMLAN1)
HMLAN1          HMLAN_Ready   9284     49   289487  5907.90      0 HASH(HMLAN1)
myDbLog            DbLog_Log  15321   5589 22451464  4017.08      0 HASH(myDbLog); HASH(1OG_Bad_Stellantrieb)
tmr-HMLAN_KeepAliveCheck   keepAliveCk:HMLAN1  18010    613   302962   494.23  61670 keepAliveCk:HMLAN1
tmr-CUL_HM_ActCheck       ActionDetector      1     37       16     0.43  34945 ActionDetector
FHEMWEB:192.168.100.160:62822              FW_Read      0      1        0     0.00      0
FileLog_1OG_Arbeitszimmer          FileLog_Log      0    251        0     0.00      0
FileLog_1OG_Arbeitszimmer_Heizungsregler          FileLog_Log      0    127        0     0.00      0
FileLog_1OG_Arbeitszimmer_Klima          FileLog_Log      0    124        0     0.00      0


Mit diesen Maßnahmen bin ich jetzt bei ca. 35 Sekunden ladezeit. Außerdem muss ich mir noch dbLOG ansehen. Der Datensatz aus "current" muss ja jedesmal auch nach "history" umgezogen werden...
Was mich noch irritiert sind die vielen LOG Einträge zu unknown code:

---SNIP---
2015.01.28 06:44:59 1: HMLAN_Parse: HMLAN1 new condition init
2015.01.28 06:45:43 1: HMLAN_Parse: HMLAN1 new condition ok
2015.01.28 06:45:49 3: HMLAN1: Unknown code A113FA0022409C425F1720494690000691A00::-75:HMLAN1, help me!
2015.01.28 06:45:50 3: HMLAN1: Unknown code A0E3F80022409C425F1720011032152::-75:HMLAN1, help me!
2015.01.28 06:49:05 3: HMLAN1: Unknown code A0E30820210918810B9920101C2023A::-101:HMLAN1, help me!
2015.01.28 06:51:03 3: HMLAN1: Unknown code A1140A0022409C425F1720492690000691A00::-74:HMLAN1, help me!
2015.01.28 06:51:06 3: HMLAN1: Unknown code A0E4080022409C425F17200EB478933::-74:HMLAN1, help me!
2015.01.28 06:53:14 3: HMLAN1: Unknown code A0AD680022409C426C27C00::-76:HMLAN1, help me!
2015.01.28 06:55:50 3: HMLAN1: Unknown code A0E32820210918810B9920101C2023A::-100:HMLAN1, help me!
2015.01.28 06:56:07 3: HMLAN1: Unknown code A1142A0022409C425F1720417550000551500::-75:HMLAN1, help me!
2015.01.28 06:56:08 3: HMLAN1: Unknown code A0E4280022409C425F17200D2E920A0::-75:HMLAN1, help me!
2015.01.28 06:57:05 3: HMLAN1: Unknown code A0A5780022409C426C11100::-75:HMLAN1, help me!
2015.01.28 06:59:07 1: 192.168.100.83:1000 disconnected, waiting to reappear (HMLAN1)
2015.01.28 06:59:07 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.01.28 06:59:12 1: 192.168.100.83:1000 reappeared (HMLAN1)
2015.01.28 06:59:12 1: HMLAN_Parse: HMLAN1 new condition init
2015.01.28 07:01:21 3: HMLAN1: Unknown code A0E34820210918810B9920101C2023A::-101:HMLAN1, help me!
2015.01.28 07:01:56 3: HMLAN1: Unknown code A1179A002104EFC104DF704A5C237FF03EE06::-106:HMLAN1, help me!
2015.01.28 07:02:08 1: HMLAN_Parse: HMLAN1 new condition timeout
2015.01.28 07:02:12 1: 192.168.100.83:1000 disconnected, waiting to reappear (HMLAN1)
2015.01.28 07:02:12 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.01.28 07:02:18 1: 192.168.100.83:1000 reappeared (HMLAN1)
---SNAP---

Evtl. ist das ja die Ursache für die Verzögerungen

Hans-Jörg


peterchen89

Wie groß ist denn deine Datenbank? Filterst du vor dem Einfügen mit dblog? Ich habe mir eine Liste aller in Plots verwendeter Geräte und Readings gemacht und nur die in Dblog eingetragen. Zusätzlich noch ein event-on-update-reading bei den Devices gesetzt. Das hat die Last auf der Datenbank schon sehr deutlich reduziert.

Hast du außerdem mal probiert dblog ganz auszuschalten und die Plots mal rauszunehmen (reicht es vielleicht das SVG Modul einfach kurz wegzuschieben und fhem neuzustarten?)?  Ist es dann immer noch langsam und hast du die hmlan Probleme?
FHEM 5.5 auf HP ProLiant MicroServer G7 N54L 8 GB Ubuntu 14.04 LTS.
1x HM-CFG-LAN, 1x HM-CFG-USB, 7x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-SEC-SCo, 2x HM-TC-IT-WM-W-EU, 2x HM-LC-Sw1-Pl, 2x HM-ES-PMSw1-Pl, 4x HM-PB-2-WM55-2, 1x HM-PB-6-WM55, 1x HM-WDS10-TH-O, 1x CUL433, 6x Pollin Funksteckdose

Rohan

Hi,

gegen die "unknown codes" hilft wohl das Aufsetzen einer VCCU (einfach mal im Wiki danach suchen).

Für deine "disconnected/reappeard" ist Input erforderlich:

- HM-LAN wie angebunden an den Fhem-PC (gleicher Switch (autosensing), Router, oder ...)
- was treibt dein Fhem-PC noch so alles (streamst du z.B. Filme ö.ä. darüber, also massiver Datentransfer)
- ...

Erzähl doch mal mehr ;)

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor