[GELÖST]dbLog//mySQL verursachen langsames FHEM

Begonnen von Pythonf, 22 Januar 2015, 15:36:13

Vorheriges Thema - Nächstes Thema

Pythonf

[EDIT]
Das Problem lag daran, dass ich alle "event-on-change-reading deaktiviert habe, um schönere Graphen zu bekommen, dies führte allerdings dazu, dass mySQL ständig neue Informationen loggen musste, was den CT überlasstet hat (wahrscheinlich die Festplatte, da die CPU Auslastung akzeptabel war). Das Problem habe ich über eine neue Definition von dblog gelöst:
/opt/fhem/db.conf .*:(humidity|temperature|state|measured-temp|desired-temp|batteryLevel|actuator).*
anstatt /opt/fhem/db.conf .*:.*
[EDIT]

Mein FHEM Frontend lädt teilweise sehr langsam, oder teils sogar kurzzeitig garnicht.
Im Logfile habe ich dazu keine Erkärung gefunden. Mein FHEM läuft auf einem Cubietruck mit SSD und einer MYSQL-Datenbank.
Putty zeigt an "Load: 0.35, 0.45, 0.44 - Board: 36.2°C - Drive: 41°C - Memory: 1782Mb" - dementsprechend gehe ich nicht davon aus, dass  der Cubietruck überlasstet ist, weshalb sollte er auch. Ich hab ihm Anhang mal meine fhem.cfg und fhem.log der letzten Stunde mit verbose 5.
MYSQL Ist wie im commandref beschrieben configuriert, mit ausnahme dass ich noch eine weitere Tabelle angelegt habe, für das "neue Frontend" (ebenfalls wie im Forum beschrieben). Der Cubietruck ist per LAN ins Netzwerk integriert, es dürfte also eigentlich nicht an der Verbindungsgeschwindigkeit liegen.

Was mich auch wundert ist, ich habe ein Notify auf einen HM Schalter gelegt, der LEDs an bzw. ausschaltet und das läuft mit einer Verzögerung von einigen Sekunden ab. (Modul LW12) Über das Frontend kann ich die LEDs jedoch sofort schalten.

Falls ihr eine Idee habt oder weitere Informationen braucht um eine Lösung zu finden, würde ich mich sehr auf eure Antworten freuen.

Beste Grüße
Fabian

ojb

Hallo,

also ich kann mich anschliessen. Mein FHEM läuft auch auf einem genügend performantem Rechner (Ubuntu) und mir kommt auch alles sehr laaaaaaangsam vor.
Beim iPad dauert es z.B. ewig bis der Ladebalken durchgelaufen ist.

Ich bin nebenbei noch berufstätig und konnte jetzt noch keine weiteren tieferen Analysen durchführen.

Liebe Grüße
Oli
FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

Rohan

- Schon mal alternative Browser versucht?
- Sind das überwiegend "plotlastige" Seiten?
- Laufen auf den Fhem-Rechnern noch andere Dienste, wenn ja, welche?

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

Wernieman

Load ist nicht alles, wird heufig überbewertet.

Dagegen mal:
- was sagt "top"?
- was sagt "iotop"
- was sagt der Memory, also "free"
- speziell wegen mysql, läuft da eventuell? also was sagt "mytop"?

Anstatt top kanns Du Dir als Anfänger auch mal htop ansehen, ich persönlich finde es aber im Prozessbereich unübersichtlicher und verbraucht mehr resourcen (beim Lauf).
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pythonf

top - 16:32:57 up 19 days, 37 min,  1 user,  load average: 0.39, 0.44, 0.42
Tasks: 103 total,   1 running, 102 sleeping,   0 stopped,   0 zombie
%Cpu(s): 12.8 us,  0.7 sy,  0.0 ni, 84.9 id,  0.8 wa,  0.0 hi,  0.8 si,  0.0 st
KiB Mem:   2046880 total,   856404 used,  1190476 free,   152848 buffers
KiB Swap:        0 total,        0 used,        0 free,   473560 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 
21239 root      20   0  4164 1220  872 R   1.0  0.1   0:00.51 top
3009 smarthom  20   0 85888  14m 2720 S   0.7  0.7 127:18.22 python3
9212 fhem      20   0 40032  26m 2640 S   0.7  1.3   1:09.52 perl
    3 root      20   0     0    0    0 S   0.3  0.0   6:45.77 ksoftirqd/0
   62 root      rt   0     0    0    0 S   0.3  0.0   6:08.45 cfinteractive
   67 root      20   0     0    0    0 S   0.3  0.0  16:34.49 hdmi proc
    1 root      20   0  1656  632  528 S   0.0  0.0   1:06.57 init
    2 root      20   0     0    0    0 S   0.0  0.0   0:00.57 kthreadd
    6 root      rt   0     0    0    0 S   0.0  0.0   0:00.80 migration/0
    7 root      rt   0     0    0    0 S   0.0  0.0   0:00.69 migration/1
    9 root      20   0     0    0    0 S   0.0  0.0   0:34.47 ksoftirqd/1
   10 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 cpuset
   11 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper
   12 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs
   13 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 netns
   14 root      20   0     0    0    0 S   0.0  0.0   0:16.22 sync_supers

root@cubietruck:~# free
             total       used       free     shared    buffers     cached
Mem:       2046880     856396    1190484          0     152848     473560
-/+ buffers/cache:     229988    1816892
Swap:            0          0          0

den Befehl iotop und mytop findet er nicht.

Nein, es ist unterschiedlich, welche Seite nur langsam lädt: Mal einfach nur ein Room ohne / mit Plots, mal Dashboard.

Zum Thema Mysql, es stand manchmal auch 2977 mysql     20   0  291m 125m 5152 S  100.0  6.3   2912:18 mysqld, also höhere CPU-Auslastung dran. Ich kenn mich aber mit Linux nur mäßig aus, und mit mysql ebenso wenig. Ich wollte nur eine Datenbank haben, die ich über dblog "verwalten" kann - bevorzugt deleteolddays.
Es liegt m.M. nach nicht am Browser, den der Seitenaufbau ist sowohl am Tablet (Chrome, Firefox) als auch am PC (Chrome, Firefox, InternetExplorer) teilweise sehr langsam. Auf dem FHEM-Rechner läuft noch unkonfiguriert smartVisu,  mehr aber nicht.

Wernieman

Also ... der Rechner "langweilt" sich in dem Moment:
Zitat84.9 id

und Memory sieht  jetzt auch gut aus, wie läuft es denn jetzt aktuell?

Eventuell musst Du mytop und iotop nachinstallieren.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pythonf

Es lädt immernoch nicht flüssig und beim Schalten der LEDs z.B. dauert es zwischen 1-4s. Hierzu eine Frage: Ist FHEM dazu in der Lage mehrere Befehle gleichzeitig abzuarbeiten. z.B. das senden eines HM Befehls und das Schalten von LEDs über Wifi ?
Total DISK READ:       0.00 B/s | Total DISK WRITE:      36.06 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
   69 be/3 root        0.00 B/s    0.00 B/s  0.00 %  1.10 % [jbd2/sda1-8]
3038 be/4 mysql       0.00 B/s    7.21 K/s  0.00 %  0.18 % mysqld --~etruck.pid
9214 be/4 mysql       0.00 B/s    3.61 K/s  0.00 %  0.14 % mysqld --~etruck.pid
12288 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % console-k~-no-daemon
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init [2]
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
12292 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % console-k~-no-daemon
12293 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % console-k~-no-daemon
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
12296 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % console-k~-no-daemon
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
   10 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cpuset]
   11 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khelper]
   12 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
   13 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
   14 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [sync_supers]
   15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bdi-default]
   16 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd]
   17 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [crypto]
   18 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kblockd]

MySQL on localhost (5.5.40-0+wheezy1)                  up 19+01:06:18 [17:02:08]
Queries: 4.0     qps:    0 Slow:     0.0         Se/In/Up/De(%):    00/00/00/00
              qps now:    0 Slow qps: 0.0  Threads:    2 (   2/   0) 00/00/00/00
Key Efficiency: 100.0%  Bps in/out:   0.0/  0.0   Now in/out:   8.3/ 1.7k

        Id      User         Host/IP         DB      Time    Cmd Query or State
        --      ----         -------         --      ----    --- --------------
        31  fhemuser       localhost                    0  Query show full proce
        26  fhemuser       localhost       fhem         1  Query UPDATE current



AHA1805

Hallo

Versuche es mal hiermit in Verbindung mit verbose 5

http://forum.fhem.de/index.php?topic=16347.45

Gruß Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Pythonf

#8
Ich hab das ganze hier mal Ausgeführt und alleine beim Starten und senden von Toggle Light liefert es 24 freezes, nach kurzer Zeit später ohne irgendwas an FHEM zu änder sind es 32, ich hab mal das LOG im Anhang. Ich hoffe, dass hilft weiter. Schaut für mich ein klein wenig so aus, als liege es an dblog. - Okay, es liegt an dblog. Ich habe dblog deaktiviert und es läuft wieder wunderbar flüssig

Prof. Dr. Peter Henning

@ojb: Wir anderen hingegen haben keine Berufe, sondern sind nur dazu da, FHEM-Probleme zu lösen.

LG

pah

Pythonf

Da es nach dem deaktivieren von dblog wieder schön flüssig läuft, würde mich nun interessieren, was ich da falsch gemacht habe:
#
# database configuration file
#
#
## for MySQL
################################################################
%dbconfig= (
connection => "mysql:database=fhem;host=localhost;port=3306",
user => "fhemuser",
password => "fhempasswd",
);
################################################################

Database changed
mysql> show tables;
+----------------+
| Tables_in_fhem |
+----------------+
| current        |
| frontend       |
| history        |
+----------------+
3 rows in set (0.01 sec)


und dblog war auch connected und hat funktioniert bzw funktioniert noch immer, irgendwas in diesem Zusammenhang verursacht nur diese Performanceproblem.
FHEM und Debian sind auf dem neuesten Update-Stand

Beste Grüße
Fabian

Wernieman

1. lass mal ein einem Fenster mytop lauen, während Du in Fhem was schaltest. Du siehst dann die SQL-Anweisungen ....

2. Auf was für ein System läuft Deine mysql und hast Du diese konfiguriert?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pythonf

Der mySQL-Server läuft ebenfalls auf dem Cubietruck. Konfiguriert ist er in soweit, als dass er eine FHEM Datenbank, einen FHEMUSER und die entsprechenden Tabellen hat. MYTOP schaut soweit eigentlich ganz gut aus, es kommen die Befehle aus dblog an und werden erfolgreich verarbeitet, denke ich:
MySQL on localhost (5.5.40-0+wheezy1)                  up 19+04:04:02 [19:59:51]
Queries: 68.0    qps:    0 Slow:     0.0         Se/In/Up/De(%):    00/00/00/00
              qps now:    0 Slow qps: 0.0  Threads:    2 (   2/   0) 00/00/00/00
Key Efficiency: 100.0%  Bps in/out:   0.0/  0.2   Now in/out:   8.3/ 1.7k

        Id      User         Host/IP         DB      Time    Cmd Query or State
        --      ----         -------         --      ----    --- --------------
        33  fhemuser       localhost       fhem         0  Query UPDATE current SET TIMESTAMP='2015-01-22 19:59:47', TYPE='CUL_HM', EVEN
        39      root       localhost                    0  Query show full processlist


anschließend steht dran fhemuser [...] sleep

Wernieman

Ein Bischen Komisch sieht der Eintrag ja aus
ZitatUPDATE current SET TIMESTAMP='2015-01-22 19:59:47', TYPE='CUL_HM', EVEN...

Aber das müssen die Entwickler von dblock Entscheiden.

Gibt es bei Dir eventuell Querys, die eine Time>0 haben?

Und noch ein Tip: mit "?" kann man sich innerhalb von mytop eine Hilfe holen. Und mit "f" kann man sich ein Statement komplett zeigen lassen
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Pythonf

Die Befehle schauen aus meiner Sicht alle gut aus, "Query commit" hat mich ein wenig irritiert, aber ansonsten ist mir nichts aufgefallen. Kann es etwas mit dem http://www.fhemwiki.de/wiki/Neues_Charting_Frontend zutun haben, ich habe wie dort beschrieben noch eine dritte Tabelle in mysql angelegt