Was tun gegen verschwenderische Server-Prozesse?

6 Beiträge / 0 neu
Letzter Beitrag
thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 176
Was tun gegen verschwenderische Server-Prozesse?

Ich habe mir letztens ein Programm geschrieben, das mittels qstat und eigenen Routinen lokale Spiele-Server-Instanzen kontaktiert und anschliessend die Prozesse ohne oder wenig Spielern niedrig priorisiert.
In Zukunft wird der Linux-Scheduler ein Feature haben, um Prozessen effektiv auf z.B. 5% der CPU zu beschränken. (Oder hats schon, aber ich warte auf eine Distro-Version). Wenns soweit ist, kann ich so Prozesse quasi-schlafenlegen, wo keine Spieler drauf sind.

Gibt es noch andere Methoden, um gegen Server-Prozesse vorzugehen, die sich nicht schlafenlegen, obwohl kein Spieler drauf ist?

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 5531

Du könnest die Prozesse re-nicen (siehe hier).

klappi
Bild des Benutzers klappi
Offline
Beigetreten: 01.05.2011
Beiträge: 17

leider hat Linux ja kein plimit. Ich finde das Thema sehr interessant, wie heißt denn dieses neue Kernel-Feature? Kannst du mal was dazu linken?

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 176

http://www.heise.de/open/meldung/Hauptentwicklungsphase-von-Linux-3-2-abgeschlossen-1374691.html

Suche nach "CFS-Prozess-Scheduler"

renice kenn ich und damit funktioniert auch mein programm, aber dazu muss mein Programm jedes Spiele-Protokoll verstehen.

1) Ich glaub es wäre noch geschickt, wenn man einfach jeden Prozess nach der Anzahl laufender UDP (wie kann man UDP zuverlässig tracken?) oder TCP-Verbindungen ganz generisch priorisiert und 2) am besten CPU absolut zuteilt (von mir aus 0.1% für Prozesse die keine Spieler haben, sollte ja genügen um eine Verbindung aufzunehmen und den Server störts ja nicht, wenn er mit 0.1 FPS läuft wenn ja kein Spieler drauf ist und bei 10 Sekunden gibts noch kein Timeout)

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 5531

UDP kannst du nicht tracken, aber evtl die offenen Ports zählen. Geht nicht sowas mit netstat?

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 176

oder aber ich beschreibe die Priorität bzw. absolute CPU-Zuteilung als Funktion des Netzwerk-Traffics eines Programms. Die Funktion muss dann einfach so aussehen, dass sich Programme nicht ins Sleeping-Nirvana befördern. Dabei ist der zu übergebende Netzwerktraffic der Durchschnitt über ein Intervall von jetzt mit einem bestimmten Vektor in die Vergangenheit. Wo möglich wird Kommunikation mit administrativen Endpunkten ausgeschlossen.

Mastodon