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å:

  1. Du har brug for rootadgang til dit system for at ændre brugergrænserne
  2. 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.