Performance

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Antworten
Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Performance

Beitrag von wak » 31.10.2020, 18:26

Hallo Mathias,

ich habe immer wieder Performance bzw. Themperature Thema durch Historian und das ca. seit Version 2.4.0.

Nach 1-2 Tagen braucht Historian ca. 10-20 % der CPU, wenn auch nix los ist, und alle anderen Prozesse auf 0% stehn, sogar nach dem Neustart (STOP / START) braucht er nach einiger Erholungszeit immer noch 3%:
TOP Prozesse CPU.jpg
Anbei noch eine Übersicht der letzten Woche, am 26. hab ich 2.5.1 und Raspberrymatic 3.53.30.20201024 eingespielt, und am 30. neugestartet.
Temp CpuLoad.jpg
Kannt man irgendwie sehen, was Historian bzw. die Datenbank gerade für Prozesse laufen hat?

Im File-Lob sehe ich das all 2-5 Sek. ein Wert reinkommt und alle 5 Sek. werden Systemvarialben gelesen!

LG wak

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: Performance

Beitrag von Mathias » 01.11.2020, 10:39

Der CCU-Historian an sich besitzt im Normalbetrieb (kein -compact oder -recalc aktiv) keine durchlaufenden Prozesse/Threads, die Last erzeugen. Jede Aktion wird auch geloggt. Die meiste Zeit schläft der CCU-Historian.
Bei der eingebetten Datenbank kann es aber schonmal sein, dass sie im laufenden Betrieb reorganisiert wird. Beobachtest Du auch viele Datenträgerzugriffe? Nach einem -compact der Datenbank sollte eigentlich Ruhe sein.

Gruß
Mathias

Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Re: Performance

Beitrag von wak » 01.11.2020, 18:11

Hallo Mathias,

danke für deine Antwort, den -compact hatte ich erst letzte Woche mal getestet, hat aber nicht wirklich etwas gebracht.

Nach dem Neustart gestern war die CPU für Historian auf 2-3% heute bereits zwischen 5-8%.

Kann man den Historian File-Log-Level im Betrieb von INFO auf FINE oder FINEST ändern, sprich ohne neustart ändern ?

LG wak

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: Performance

Beitrag von Mathias » 01.11.2020, 18:21

Hallo wak,
die Komfigurationsdatei kann während des Betriebs geändert werden. Spätestens nach 30 Sekunden wird die neue Komfiguration geladen.
VG Mathias

Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Re: Performance

Beitrag von wak » 01.11.2020, 19:32

Danke für die super schnelle Antwort, hat funktioniert, aber damit wird alles kurz gestoppt und wieder gestartet, obwohl ich nur den Level geändert habe:
2020-11-01 19:21:07|FINE |Stopping re-init task
2020-11-01 19:21:07|FINE |Stopping XML-RPC server
2020-11-01 19:21:07|INFO |Stopping BIN-RPC server on port 2099
2020-11-01 19:21:07|INFO |Stopping database
2020-11-01 19:21:16|INFO |Stopping base services
2020-11-01 19:21:16|FINE |Reading configuration file /usr/local/addons/ccu-historian/ccu-historian.config
2020-11-01 19:21:16|INFO |Starting base services
2020-11-01 19:21:16|INFO |Connecting to database
2020-11-01 19:21:18|INFO |Starting database web server
2020-11-01 19:21:18|INFO |Setting up device 1
2020-11-01 19:21:18|INFO |Creating HM script client for http://127.0.0.1:8181/tclrega.exe
2020-11-01 19:21:18|INFO |Setting up plug-in 1
2020-11-01 19:21:18|INFO |Configured following interfaces: BidCos-RF, HmIP-RF, SysVar, CUxD
2020-11-01 19:21:18|INFO |Starting interfaces
2020-11-01 19:21:18|INFO |Starting BIN-RPC server on port 2099
2020-11-01 19:21:18|INFO |Starting XML-RPC server on port 2098
2020-11-01 19:21:18|INFO |Connecting to 127.0.0.1:8701
2020-11-01 19:21:18|INFO |Starting historian
2020-11-01 19:21:18|INFO |Starting web server
2020-11-01 19:21:18|INFO |jetty-7.2.2.v20101205
2020-11-01 19:21:18|INFO |NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
2020-11-01 19:21:18|INFO |Started SelectChannelConnector@0.0.0.0:8082
2020-11-01 19:21:18|INFO |Web server port: 8082

Ich gehe davon aus, das dann wieder meine CPU Auslastung bereits bereinigt ist, werde es mal versuchen.

Einiges habe ich bereits geändert:
devices.device1.sysVarDataCycle=60000 (vorher 5000)
database.pgEnable=false (vorher true)
historian.metaCycle=84600000
historian.bufferTime=3600000

und zusätzlich habe ich mal die Datenbank vom USB stick auf die Interne memory beim Thickerboard copiert.

Werde mal beobachten ob sich das jetzt ändert.

LG wak

Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Re: Performance

Beitrag von wak » 14.12.2020, 17:56

Hallo Matthias,

das Performance Thema habe ich leider immer noch!

Meiner Meinung nach hat es mit folgendem Parameter "devices.device1.sysVarDataCycle" zu tun, wenn er gross wie 60000 ist, dann ist der Performance Verlust geringer, als wenn er 10000!

Derzeit starte ich den Historian Service täglich um 04:00 durch, wie man in der Grafik sieht, geht dann auch die Temperature wieder runter und im Verlauf des Tages wieder hoch.
CCU-Historian Performance 3 Tage.png
Die Systemvariablen hat ich bereits kontrolliert und besondere bereits gelöscht, hat leider auch nix gebracht.

Vielleicht hast du noch eine Idee, was hier falsch laufen könnte.

LG wak

flo_ded
Beiträge: 94
Registriert: 08.05.2018, 00:46
Hat sich bedankt: 11 Mal

Re: Performance

Beitrag von flo_ded » 29.12.2020, 13:16

wak hat geschrieben:
31.10.2020, 18:26
Nach 1-2 Tagen braucht Historian ca. 10-20 % der CPU, wenn auch nix los ist, und alle anderen Prozesse auf 0% stehn, sogar nach dem Neustart (STOP / START) braucht er nach einiger Erholungszeit immer noch 3%:
TOP Prozesse CPU.jpg
Sorry für die Offtopic aber wie konntest du deine Prozesse und deren CPU Last dir anzeigen lassen?
RasPi 4B 4GB
Addons: CCU-Historian, CUxD, hm-ioBroker, E-Mail, HVL, RedMatic

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: Performance

Beitrag von Mathias » 29.12.2020, 23:03

Bezüglich Deiner CPU-Auslastung habe ich keine weitere Idee. Es ist aber kein generelles Problem, da es bei meinen Installationen bisher nicht aufgefallen ist. Aber wenn Du mir mal das Skript für die CPU-Auslastung geben könntest, dann kann ich nochmal genau nachprüfen.

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: Performance

Beitrag von NickHM » 30.12.2020, 07:58

wak hat geschrieben:
01.11.2020, 19:32
Danke für die super schnelle Antwort, hat funktioniert, aber damit wird alles kurz gestoppt und wieder gestartet, obwohl ich nur den Level geändert habe:
Soweit ich weiss, wird die geänderte Konfig übernommen, indem das Programm neu gestartet wird. Vielleicht hat sich Mathias da nur etwas ungenau ausgedrückt.

Benutzeravatar
wak
Beiträge: 253
Registriert: 05.05.2014, 00:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 31 Mal

Re: Performance

Beitrag von wak » 30.12.2020, 13:24

Hallo,

anbei das Shell-Script für die CPU% das ich verwende, habe es unter folgenden Pfad gespeicher: /www/addons/wak/cpustat.sh

Code: Alles auswählen

#!/bin/sh
# Loggen von Systemvitalwerten und speichern dieser
# in CCU1 Systemvariablen zum Loggen und Auswerten
# mittels CCU-Historian

load5min1=`cat /proc/loadavg|cut -d " " -f 2|cut -d "." -f 1`
load5min2=`cat /proc/loadavg|cut -d " " -f 2|cut -d "." -f 2`
load5min=`expr $load5min1 \* 100 + $load5min2`

memfree=`cat /proc/meminfo | grep ^MemFree: | cut -b 18-24`
memcached=`cat /proc/meminfo | grep ^Cached: | cut -b 18-24`
memfreesum=`expr $memfree + $memcached`
proccount=`ps|grep "root"|wc -l`

ut=`cat /proc/uptime|cut -d "." -f 1`
uptime=`expr $ut / 86400`

cputemp=`cat /sys/class/thermal/thermal_zone0/temp | sed 's/.\{3\}$/.&/'`

echo "cculog_load5min.State " $load5min
echo "cculog_mem_free.State " $memfree
echo "cculog_mem_cached.State " $memcached
echo "cculog_mem_freesum.State " $memfreesum
echo "cculog_proccount.State " $proccount
echo "cculog_cputemp.State " $cputemp
echo "cculog_uptime.State " $uptime

tclWriteSysvar='load tclrega.so;
array set hms [rega_script {
dom.GetObject("'cculog_load5min'").State('$load5min');
dom.GetObject("'cculog_mem_free'").State('$memfree');
dom.GetObject("'cculog_mem_cached'").State('$memcached');
dom.GetObject("'cculog_mem_freesum'").State('$memfreesum');
dom.GetObject("'cculog_proccount'").State('$proccount');
dom.GetObject("'cculog_cputemp'").State('$cputemp');
dom.GetObject("'cculog_uptime'").State('$uptime');
}
];'

echo $tclWriteSysvar | /bin/tclsh -c
Das wird all 3 Minuten mit folgendem Befehl via HM-Script gestartet:

Code: Alles auswählen

! start ccu monitor script
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/www/addons/wak/cpustat.sh"); 
Ich hoffe das hilft.

LG wak

Antworten

Zurück zu „CCU-Historian“