Page 1 of 1

100% Auslastung eines Prozessorkerns

Posted: Sun Jun 02, 2024 3:35 am
by fuddl
Hallo,

RailControl lastet einen Prozessorkern vollständig aus, auch wenn man weder Webinterface, noch die Bahn gerade benutzt.

System:
Debian GNU/Linux amd64 bookworm
Z21-kompatible mXion MZSPro Zentrale


Dauerhaft zeigt mir top an:

Code: Select all

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     ZEIT+ BEFEHL                                                                                 
   5024 fuddl     20   0  681732  10456   6612 R 100,0   0,3  17:50.71 RailControl     
Ich würde erwarten dass die Last deutlich unter 100% liegt. Mache ich etwas falsch?

Re: 100% Auslastung eines Prozessorkerns

Posted: Sun Jun 02, 2024 5:58 am
by fuddl
Abhilfe gefunden.

Ursache scheint zu sein dass stdin auf /dev/null in einer systemd Service-Umgebung abgebildet wird, in Kombination mit railcontrol ohne --daemonize Option.

Ich umgehe das Problem in meiner railcontrol.service mit

[…]
ExecStart=/usr/bin/railcontrol --config /home/fuddl/railcontrol.conf --daemonize
Type=forking
[…]

Re: 100% Auslastung eines Prozessorkerns

Posted: Sun Jun 02, 2024 6:57 pm
by teddy
Hallo

RailControl sollte standardmässig das System nur minimalst auslasten, denn RailControl wurde explizit für schmalspurige Rechner konzipiert.

In interpretiere, dass du RailControl gleich mit in den Systemstart einbinden möchtest. Wie du selbst herausgefunden hast, gibt es dafür die Option --daemonize. Damit wird stdin nicht mehr verwendet, ebenso werden keine Ausgaben mehr auf stdout gemacht.

Gruss
Teddy

Re: Fixed: 100% Auslastung eines Prozessorkerns

Posted: Fri Jun 07, 2024 7:23 pm
by _DB_
Hallo Teddy, hallo fuddl,

ich hatte das Problem ebenfalls - mit RailControl auf einem Rasberry Pi ZERO 2, auf einem Mac, auf einem Win 11-PC.

Die 100%-Last eines Prozessors rührte daher, daß als Zentrale eine nicht vorhandene USB-Schnittstelle ausgewählt wurde. Sobald die Schnittstelle unter Zentrale korrekt eingestellt wurde, sank die Prozessorlast auf die erwarteten 0% + ein bisschen mehr (unter htop ist die Einstellung zu grob - maximal beobachteter Peak war < 5%).

Diese Beobachtung gilt umgekehrt, wenn einer vorhandenen Zentrale (in meinem Fall DCC-EX) wieder ein falsches USB-device zugeordnet wird. Sofort springt die Last eines Prozessors auf 100% konstant.

Viele Grüße aus Herne - Detlef

Re: 100% Auslastung eines Prozessorkerns

Posted: Sat Jun 08, 2024 6:04 am
by fuddl
teddy wrote: Sun Jun 02, 2024 6:57 pm Hallo

RailControl sollte standardmässig das System nur minimalst auslasten, denn RailControl wurde explizit für schmalspurige Rechner konzipiert.

In interpretiere, dass du RailControl gleich mit in den Systemstart einbinden möchtest. Wie du selbst herausgefunden hast, gibt es dafür die Option --daemonize. Damit wird stdin nicht mehr verwendet, ebenso werden keine Ausgaben mehr auf stdout gemacht.
Hallo Teddy,

danke für die Antwort. Du interpretierst richtig, ich habe einen systemd Service für meinen Benutzer angelegt und der Service startet railcontrol beim Systemstart. Mit --daemonize funktioniert das auch ohne einen zu 100% ausgelasteten Prozessorkern.

Re: Fixed: 100% Auslastung eines Prozessorkerns

Posted: Sat Jun 08, 2024 6:07 am
by fuddl
_DB_ wrote: Fri Jun 07, 2024 7:23 pm Hallo Teddy, hallo fuddl,

ich hatte das Problem ebenfalls - mit RailControl auf einem Rasberry Pi ZERO 2, auf einem Mac, auf einem Win 11-PC.

Die 100%-Last eines Prozessors rührte daher, daß als Zentrale eine nicht vorhandene USB-Schnittstelle ausgewählt wurde. Sobald die Schnittstelle unter Zentrale korrekt eingestellt wurde, sank die Prozessorlast auf die erwarteten 0% + ein bisschen mehr (unter htop ist die Einstellung zu grob - maximal beobachteter Peak war < 5%).

Diese Beobachtung gilt umgekehrt, wenn einer vorhandenen Zentrale (in meinem Fall DCC-EX) wieder ein falsches USB-device zugeordnet wird. Sofort springt die Last eines Prozessors auf 100% konstant.

Viele Grüße aus Herne - Detlef
Hallo Detlef,

dieses Problem war es in meinem Fall nicht. Auf meinem System stammt es von der Verknüpfung von /dev/stdin -> /dev/null ohne --daemonize in einem systemd.service.

Re: Fixed: 100% Auslastung eines Prozessorkerns

Posted: Mon Jun 10, 2024 6:00 am
by teddy
_DB_ wrote: Fri Jun 07, 2024 7:23 pm Diese Beobachtung gilt umgekehrt, wenn einer vorhandenen Zentrale (in meinem Fall DCC-EX) wieder ein falsches USB-device zugeordnet wird. Sofort springt die Last eines Prozessors auf 100% konstant.
Hallo zusammen

Ich muss dem mal nachgehen. Das sollte auch behoben werden können.

Gruss
Teddy