Linux CPU Usage – Limit bei Prozess

Der eine oder andere von euch kennt vielleicht das Problem. Irgendwann hat man sich mal eine root-Server zugelegt, damit man Anwendungen im Internet laufen lassen kann (z.B. Webserver, Teamspeak, Minecraft) und irgendwie ist das System immer an der Grenze der Load. Gut, bei mir liegt das daran, dass auf der Maschine einfach viele Programme laufen, aber etwas Optimierung geht immer.

Ein großes Problem bei mir ist z.B. der Minecraft Server. Wenn er kann, bombt er mir die CPU bis ans Limit.

Genau diesem Problem werde ich mich hier in dem Artikel mal widmen.

Ziel ist es, einem Prozess nur eine bestimmte CPU Kapazität zur Verfügung zu stellen.

Ich werde das hier am Beispiel meines Minecraft Servers auf Debian Basis mal zeigen.

Zuerst brauchen wir ein kleines Tool, dass für uns die CPU Einschränkungen vornimmt. Dafür installieren wir cpulimit nach.

Nun haben wir zwei Möglichkeiten, die CPU Einschränkung zu hinterlegen.

Bei Variante eins lege ich fest dass ein Programm nur eine Gewissen Prozentsatz der CPU Verbrauchen darf.

Bei der zweiten Variante lege ich die Beschränkung nicht auf den Programmnamen, sonder direkt an die Prozess ID

Ich werde jetzt beide Varianten zeigen.

Variante eins – Programmname

Da Minecraft unter Java läuft, könnte ich einfach alle Aufrufe des Programmes Java limitieren. Der Befehl dafür sieht wie folgt aus:

Damit dürfte Java nur 30% der CPU verwenden.

Variante zwei – Prozess ID

Hier brauch ich erstmal die Prozess ID von Minecraft. Dafür verwende ich den Befehl

und bekomme diese Ausgabe.

Damit weis ich nun auch die Prozess ID (2110). Nun kann ich die CPU für diese ID beschränken

Damit kann genau dieser eine Prozess jetzt nur noch 30% der CPU belegen.

Ich persönliche verwende auf meinem Server die Variante zwei, da ich mehrere Java Applikationen am laufen habe.

Zu guter letzt nochmal eine Übersicht der möglichen Parameter:

  • -p : Process ID
  • -e : Process name
  • -l : Prozent der CPU erlaubt von 0 bis 100.

 

 

About Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Speak Your Mind

*