Neues Modul: Performance Monitor

Begonnen von herrmannj, 10 November 2013, 12:49:13

Vorheriges Thema - Nächstes Thema

fhainz

Mysql ist nicht zu schwerfällig für den pi. Vielleicht im zusammenhang mit fhem aber mysql an sich läuft auf einem pi problemlos.

Grüße

hexenmeister

Jo, die DB läuft schon. Bei mir erzeugte sie aber eine hohe CPU-Last (zugegeben, in meinem FHEM wird schon einiges geloggt  :) ).

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

Zitatzugegeben, in meinem FHEM wird schon einiges geloggt
Wieviel ist einiges?

Mein RasPi sammelt noch Daten von 2 anderen ein und wirft alles in eine DB.
Wenn ich mich nicht verschaut habe hat die DB mittlerweile 1,68 GB.
Seit heute morgen kommt noch sysmon dazu.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Moin!

Hmm, so viel wie DU habe ich doch wohl nicht ;)
Ich komme nur auf 466 MB (gesammelt in 1 Jahr).

Ich werde mal SQLite ausprobieren, scheint ja Deine Installation ganz gut zu tragen.
Sag mal, wie hoch ist bei ie die Durchschnittsbelastung von CPU. Jetzt kannst ja bequem aus den SYSMON-Logs ablesen ;-)

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

#34
Hallo,

SYSMON läuft erst seit heut morgen - und ich schaff es erstmal nur die 1-Minuten-Werte zu plotten.

Grüße

P.S.: Ich hoffe man kann was erkennen
Edith: Mal eben das "verwischen" weggemacht
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hi,

man erkennt genug ;) Das System hat nicht viel zu tun. Gefällt mir :)

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Tobias

Hi, ist das ein Ersatz für das SYSSTAT Modul?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

ich hoffe doch mal das man das SYSTAT modul nicht ersetzen muss :)

wenn du das modul vom anfang dieses threads meins (performancemonitor) dann ist es etwas komplett anderes. das misst ob deine fhem installation hänger hat.

das SYSMON ist etwas ähnliches wie SYSTAT aber scheinbar auf den lokalen rechner und auf linux beschränkt. SYSSTAT kann auch remote überwachen. auch z.b. windows und noch ein paar andere und kann auf unterschiedliche arten überwachen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hexenmeister

Hallo,

SYSMON ist kein Ersatz für SYSSTAT. Es ist entstanden, weil SYSSTAT damals nicht alles bieten konnte, was ich alles sehen wollte (und weil ich keine weiteren Perl-Module installieren wollte). Dazu noch diente es als eine Fingerübung zum Kennenlernen von Perl und FHEM-Architektur.
Es sollte keine Konkurenz sein. ;)

Grüße,

Alexander

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

@herrmannj

Hallo Jörg,

je länger ich überlege, desto besser gefällt mir Dein PerfMon-Modull. Allerdings finde ich es etwas mühsam, die FHEM-Logdatei durchzusehen. Eine Visualisierung wäre hilfreich. Dann könnte man auf einen Schlag sehen, ob sich die Suche lohnt. Eine Art Balkendiagram, wo die Höhe die Freeze-Zeit angibt. Geht so schön mit Plot wahrscheinlich nicht, aber auch eine Graphik mit Punkten (dots) würde es auch tun.
Lange Rede, gar kein Sinn... Hast Du etwas dagegen, wenn ich Deine Idee in mein SYSMON-Modull einbringe, logge und ein entsprechendes Plot dazu erstelle?

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

herrmannj

Hallo Alexander,

na klar kannst Du den code verwenden. Vielleicht lässt sich das aber auch anders lösen.

Eine Duplizierung des codes hätte den Nachteil das ein Benutzer der sysmon nicht verwendet perfom installiert und wenn er dann sysmon einsetzen möchte dann müsste er perfom deinstallieren sonst wäre das doppelt. Aus Benutzersicht fände ich das nicht optimal.

Spontan fallen mir folgende Möglichkeiten ein:
* da wo ich jetzt den Eintrag im log erzeuge könnte ich stattdessen ein event auslösen. Das event kann der user dann in der def eines Filelogs verwenden oder ein notify draufsetzen weches, wie gehabt, einen log 1 Eintrag erzeugt. Das würde zwar mehr cpu verbrauchen als jetzt, aber *nur* wenn sowieso ein freeze da ist. Im Normalbetrieb müsste das neutral sein. Das filelog kann man dann auch prima plotten.

Dieses event könntest Du im auch im sysmon catchen und hättest es dann direkt im modul zur Verfügung.

Alle Werte die unterhalb der 1000ms Schwelle liegen könnte perfmon auch zur Verfügung stellen, entweder als ein als fifo organisiertes array (exportierte var) oder kumuliert alle x sec/min oder so. Dort bin ich aber der Meinung das macht keinen Sinn weil diese Werte ja keinen Rückschluss auf irgendwas zulassen. Man kann zwar sehen wie zeitlich exakt der Aufruf erfolgt. Die die Reihenfolge der Abarbeitung einzelner Tasks nicht definiert ist könnte es sein das perfmon mit 10ms Versatz aufgerufen wird, danach jedoch ein anderer Task der sich 980ms nimmt. Dafür sind Dein Ansatz über die sys-stats, das Modul von justme oder des profiling aus dem Wiki eigentlich viel besser geeignet.

vg
jörg





hexenmeister

Hallo Jörg,

danke für die schnelle Antwort!

ZitatEine Duplizierung des codes hätte den Nachteil das ein Benutzer der sysmon nicht verwendet perfom installiert und wenn er dann sysmon einsetzen möchte dann müsste er perfom deinstallieren sonst wäre das doppelt. Aus Benutzersicht fände ich das nicht optimal.
Daran habe ich auch schon gedacht. Aber auf Deinen (eigentlich offensichtlichen) Vorschlag mit dem Event aus PerfMon bin ich irgendwie nicht gekommen. Das finde ich wesentlich besser. Wäre toll, wenn Du das soweit erweitern könntest. Ich würde dann gern ein Plot dazu erstellen.

Die Werte unter 1 Sekunde finde ich jetzt auch nicht so spannend. Wenn man diese auch noch den Modulen zuordnen könnte und damit die Zeitverteilung füe jedes einzelne Modull erstellen könnte, das wäre natürlich schön, aber so einfach wird es ja nicht gehen :(

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

herrmannj

Hi Alexander,

mach ich fertig. Bei der Gelegenheit versuche ich mal ob ich das im sourceforge ins contrib legen darf. Muss ich mich aber erst einlesen, vermutlich brauche ich da erstmal ein ok von Rudi oder sowas ..

vg
Jörg

Matzek83

Tolles Modul! Hat mir sehr geholfen... Sehr übersichtlich auch ohne grafische Darstellung!
Einchecken wäre wünschenswert.

Grüße

JoeALLb

MySQL läuft schlecht, wenn man wenn man Current und History loggt,
weil dann 3 Datenbankaktionen pro Logeintrag(Insert History, Insert or Update Current) gemacht werden müssen.

Es läuft viel performanter, wenn man eben nur in die History-Tabelle loggt.
Ich habe damit recht brauchbare Ergebnisse erziehlt, und mir was MySQL bedeutend lieber, da ich dort keine Timeouts bekommen habe beim bereinigen von alten, nicht mehr benötigten Loggings.
SQLite war zum reinen loggen schneller, jedoch zum Aufräumen unschön.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270