100% Auslastung eines Prozessorkerns

Bei Problemen bei der RailControl Installation
Post Reply
fuddl
Posts: 29
Joined: Sun Jun 02, 2024 3:22 am

100% Auslastung eines Prozessorkerns

Post 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?
fuddl
Posts: 29
Joined: Sun Jun 02, 2024 3:22 am

Re: 100% Auslastung eines Prozessorkerns

Post 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
[…]
User avatar
teddy
Site Admin
Posts: 489
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: 100% Auslastung eines Prozessorkerns

Post 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
User avatar
_DB_
Posts: 165
Joined: Wed May 20, 2020 8:20 pm
Location: Herne - Germany

Re: Fixed: 100% Auslastung eines Prozessorkerns

Post 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
Märklin H0 Gleisbox aufgepeppt -
RailPi V2 mit Gerds 'can2lan', Teddy's 'RailControl', CdB Modulen, Gustavs 'CANguru-System'
und DCC-EX - vorzugsweise für die LGB und zum Testen
fuddl
Posts: 29
Joined: Sun Jun 02, 2024 3:22 am

Re: 100% Auslastung eines Prozessorkerns

Post 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.
fuddl
Posts: 29
Joined: Sun Jun 02, 2024 3:22 am

Re: Fixed: 100% Auslastung eines Prozessorkerns

Post 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.
User avatar
teddy
Site Admin
Posts: 489
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Fixed: 100% Auslastung eines Prozessorkerns

Post 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
Post Reply