Tell 'nice' to stop +19 processes if load >= 1

475
barrycarter

I've noticed my computer gets sluggish when the load increases past 1 (ie, the first number after "load average:" from the "uptime" command).

Heavy-duty processes (like rsync) often raise the load above 1, even if I renice them lowest priority (+19). Renicing them helps a little, but not a lot.

Can I tell nice (or another program) to completely stop (kill -STOP) any +19 processes when the load increases over 1 (and resume when the load decreases to .75 or something)?

3
Lastdurchschnitt bedeutet nicht besonders viel ... es ist nur die Anzahl der Prozesse, die in bestimmten Zeitintervallen aktiv sind. Eine Last von 1,0 bedeutet nicht, dass das System voll ausgelastet ist. Es wird immer mindestens ein Prozess ausgeführt. Es könnten 20 Prozesse sein, die jeweils 5% der Zeit laufen. vor 13 Jahren 0
Oh ich weiss. Ich habe gesehen, dass der Lastdurchschnitt einmal auf 120 ging (das System reagierte überhaupt nicht). Jemand hat mir einmal gesagt, dass diese Zahl den Prozentsatz der verwendeten CPU angibt (mit 120% möglich, da Unix dies auf dieselbe Weise vortäuscht wie in "df"), aber ich denke jetzt, dass das nicht stimmt. Mir ist gerade persönlich aufgefallen, dass mein System träge wird, wenn der Lastdurchschnitt beispielsweise auf 1,50 geht. barrycarter vor 13 Jahren 0

1 Antwort auf die Frage

1
Mikhail Kupchik

FreeBSD hat die IDLE-Prozessklasse - siehe Seite "rtprio (1)". Sie können rsync daher die IDLE-Priorität zuweisen, sodass bei normalen aktiven Prozessen keine Zeitscheiben angezeigt werden.

http://www.freebsd.org/cgi/man.cgi?query=rtprio&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html

Linux hat ionice (1) für den CFQ io-Scheduler: http://linux.die.net/man/1/ionice Sehr ähnliches Konzept, jedoch für E / A.

ionice ist genau das, was ich brauchte, danke! barrycarter vor 13 Jahren 0