Linux processen beperken in CPU gebruik
Nice
Met nice
kan een process een prioriteit toegekend worden. Prioriteiten zijn een
manier om de scheduler te vertellen welke processen voorang krijgen op minder
belangerijke processen. Dit kan met renice
ook op een process dat al draait.
Nice waarden gaan van -20
(hoogste) tot 19
(laagste). Standaard is deze waarde 0
.
Het gebruik van nice
is zeer eenvoudig, je plaatst nice -n <prioriteit>
voor het commando dat je wenst uit te voeren, bijvoorbeeld nice -n 19 tar -zcf /var/backups/home.tgz /home/
.
De scheduler zal processen met een hoge nice waarde (dus lage prioriteit) minder cpu tijd geven dan processen met een hogere prioriteit. Heel handig voor bijvoorbeeld zware backup processen.
Een voorbeeld van
nice
processen
Default nice voor een linux gebruiker
De standaard nice waarde voor een linux gebruiker is 0
. Dit kan echter aangepast
worden in /etc/security/limits.conf
door de priority
parameter in te stellen voor een bepaalde gebruiker/groep. Bijvoorbeeld:
gebruiker hard priority 10
De gebruiker
gebruiker
zal standaard processen uitvoeren met nice 10
, dus met een lagere prioriteit
Cpulimit
cpulimit
is een programma dat met behulp van SIGSTOP
en SIGCONT
signalen het gemiddelde cpu-percentage van een process beperkt tot een gegeven percentage. Dit commando werkt net zoals nice
door het te plaatsen vlak voor het commando dat je wilt uitvoeren:
cpulimit -l 50 tar -zcf /var/backups/home.tgz /home/
Het voorbeeld hierboven zou de backup van de /home/
directory beperken tot 50% cpu snelheid.
Indien een process subprocessen spawned, is het belangerijk om aan cpulimit ook de -m
parameter mee te geven.