Hallo zusammen,
wenn ich per htop meinem System zuschaue gibt es zum regulären fhem-Prozess immer wieder "Unterprozesse", die kommen und gehen. Da die CPU-Last ab und an ziemlich hoch wird, eben oft wenn diese Unterprozesse auftauchen, würde ich gerne herausfinden, was fhem da gerade tut. Gibt es da eine Möglichkeit, so ähnlich wie Event-Monitor? Oder einen Filter für diesen? Oder auf Linux-Ebene?
Danke schon mal.
Sany
das sind sicherlich die fhem forks, die einige module erzeugen, um blockierende funktionen in einer "parallelen" instanz auszuführen.
mit attr global blockingCallMax lässt sich das begrenzen.
Zitatdas sind sicherlich die fhem forks, die einige module erzeugen
genau die meine ich. Habe htop nun auf den user fhem begrenzt und kann zumindest die ping-commands von presence erkennen (die "stören" nicht weiter, was die CPU-Last angeht). Die anderen forks heißen aber alle
Zitat/usr/bin/perl fhem.pl fhem.cfg
Da würde ich gerne wissen, wer die erzeugt.
Es sind bisher auch max ca 8 gewesen, meistens nur 1-4. Von daher gibts erst mal keinen Grund, die per blockingCallMax zu begrenzen. Mein System läuft mit einem Celeron N3150 mit 4 Kernen. Scheint mir erst mal performant genug.
beobachte mal das aktualisieren einer raumseite mit vielen plots. ;)
Zitatbeobachte mal das aktualisieren einer raumseite mit vielen plots. ;)
das ist tatsächlich nicht weiter wild. Eine Seite mit 11 Plots erzeugt ein paar forks, belastet aber eher wenig.
Ab und zu sehe ich auch einen, der einfach nur "perl" heißt.
Wie gesagt, gibts da irgendeine Möglichkeit, herauszufinden, wer der Auslöser eines solchen forks ist?
Wenn einer der benutzten Module BlockingCall verwendet, dann wird ein blockinginfo Befehl angeboten.
ZitatWenn einer der benutzten Module BlockingCall verwendet, dann wird ein blockinginfo Befehl angeboten.
Vielen Dank für die Info. Da die Prozesse immer nur kurz laufen ist das auch nicht so ganz das, was ich suche. Vermutlich geht das aber auch nicht. Ich werde einfach mal die Module, die ich einsetze, darauf abklopfen, ob BlockingCalls verwendet werden. Wenn ich dann sehe welche Module es sind kann ich von da aus weitersuchen.
Mein fhem ist halt auch über die Jahre gewachsen und recht groß geworden. Vor einer Weile habe ich dann versucht, die Event-flut einzudämmen und sinnvoller zu gestalten. Das hat viel gebracht. Da ich aber immer noch ab und zu hohe CPU-loads habe vermute ich, ich hab da nicht alles gefunden.