PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Niceness einstellen



NeWsOfTzzz
13.05.08, 01:17
Ich habe eine Serverapplikation, die möchte ich jetzt starten, allerdings soll die Niceness auf den niedrigsten Wert gesetzt werden, da ich auch noch andere Sachen auf dem Server machen möchte wie kompilieren, diese Applikation aber EXTREM ressourcenkritisch ist. Niceness kann man allerdings nur als Root hochsetzen, das Programm selber soll aber mit einem normalen Benutzer laufen, weiß da jemand einen komfortablen Weg?

MiGo
13.05.08, 06:56
das Programm selber soll aber mit einem normalen Benutzer laufen, weiß da jemand einen komfortablen Weg?
Starte die Application als Benutzer, merke dir die PID des Prozesses (steht nach dem Starten in der Variablen "$!") und setze danach die niceness mit "renice" als root.

NeWsOfTzzz
13.05.08, 06:57
Starte die Application als Benutzer, merke dir die PID des Prozesses (steht nach dem Starten in der Variablen "$!") und setze danach die niceness mit "renice" als root.

Ich meinte jetzt automatisch, wie das manuell geht wusste ich schon :p

Roger Wilco
13.05.08, 09:37
Mit dem start-stop-daemon kann man das Niceness Level schon beim Start setzen.

NeWsOfTzzz
17.05.08, 03:39
Ich hab mich für nen anderen Weg entschieden, der erstens einfacher ist und zweitens auch professioneller (dazu würde ich gerne eure Meinung hören, bin ja net so erfahren mit Linux):
Da die besprochene Software eine Eigenentwicklung ist, kann ich Programmierfehler nicht ausschließen, welche im schlimmsten Fall auch zu einer Endlosschleife führen könnten! Was jetzt bei Niceness -10, so wie ich mir das denke, auch zu einem Funktionsstop des SSH daemons führen würde?

Deswegen habe ich mich entschieden, dafür braucht man auch keine root rechte, einfach alle anderen tasks die CPU klauen könnten, wie wenn ich nebenbei eine neue Version kompiliere, benutze ich "nice -n 10"... Ist doch die bessere Lösung als die Niceness meiner Software unter kritische Systemprozesse zu setzen oder?

Ach übrigens noch ne kleine Frage, ich hatte versucht den niceness level runterzusetzen mit einem script dem ich das superuser flag gegeben hab, nur irgendwie hat es nicht funktioniert? Ich dachte superuser flag wäre gleichbedeutend mit root rechten ^^

Roger Wilco
17.05.08, 11:21
Was jetzt bei Niceness -10, so wie ich mir das denke, auch zu einem Funktionsstop des SSH daemons führen würde?
Prinzipiell ja, weil der Prozess des SSH dann vom Scheduler keine Rechenzeit mehr zugewiesen bekommt.


Deswegen habe ich mich entschieden, dafür braucht man auch keine root rechte, einfach alle anderen tasks die CPU klauen könnten, wie wenn ich nebenbei eine neue Version kompiliere, benutze ich "nice -n 10"... Ist doch die bessere Lösung als die Niceness meiner Software unter kritische Systemprozesse zu setzen oder?
Ja, wenn auch etwas aufwendiger. Andererseits ist die Frage, ob du auf einem Produktivsystem(?) überhaupt etwas kompilieren solltest. Das machst du besser auf einem anderen System und installierst anschließend nur die Kompilate.


Ach übrigens noch ne kleine Frage, ich hatte versucht den niceness level runterzusetzen mit einem script dem ich das superuser flag gegeben hab, nur irgendwie hat es nicht funktioniert? Ich dachte superuser flag wäre gleichbedeutend mit root rechten ^^
Überleg mal wie das Skript ausgeführt wird...

Richtig, durch den Interpreter (z. B. bash, python, perl usw.). Und den Interpreter interessiert das SUID-Flag des Skripts keine Bohne.