Sådan indstilles grænser for brugerkørende processer i Linux
En af Linux-skønhederne er, at du kan kontrollere næsten alt om det. Dette giver en systemadministrator stor kontrol over sit system og bedre udnyttelse af systemressourcerne.
Mens nogle måske aldrig har tænkt på at gøre dette, er det vigtigt at vide, at du i Linux kan begrænse, hvor meget ressource en enkelt bruger kan bruge, og hvor længe.
I dette korte emne viser vi dig, hvordan du begrænser antallet af processer, der er startet af brugeren, og hvordan du kontrollerer de nuværende grænser og ændrer dem.
Før vi går videre, er der to ting, vi skal pege på:
- Du har brug for rootadgang til dit system for at ændre brugergrænserne
- Du skal være yderst forsigtig, hvis du planlægger at ændre disse grænser
For at opsætte brugergrænser skal vi redigere følgende fil:
/etc/security/limits.conf
Denne fil bruges til at anvende ulimit oprettet af pam_module.
Filen har følgende syntaks:
<domain> <type> <item> <value>
Her stopper vi for at diskutere hver af mulighederne:
- Domæne - dette inkluderer brugernavne, grupper, guidområder osv.
- Type - bløde og hårde grænser
- Element - det element, der vil være begrænset - kernestørrelse, filstørrelse, nproc osv.
- Værdi - dette er værdien for den givne grænse
En god prøve for en grænse er:
@student hard nproc 20
Ovenstående linje sætter en hård grænse på maksimalt 20 processer i gruppen "student"
.
Hvis du vil se grænserne for en bestemt proces, kan du blot "kat" grænsefilen sådan:
# cat /proc/PID/limits
Hvor PID er det faktiske proces-ID, kan du finde ud af proces-id ved hjælp af kommandoen ps. For mere detaljeret forklaring kan du læse vores artikel, der siger - Find kørende Linux-processer og indstil procesgrænser pr. Brugerniveau
Så her er et eksempel:
# cat /proc/2497/limits
Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 32042 32042 processes Max open files 1024 4096 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 32042 32042 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
Alle linjerne er stort set selvforklarende. Men hvis du vil finde flere indstillinger, du kan indtaste i limit.conf-filen, kan du se på manualen, der er angivet her.
Hvis du har spørgsmål eller kommentarer, så tøv ikke med at indsende dem i kommentarfeltet nedenfor.