Kaip nustatyti vartotojo paleidimo procesų ribas sistemoje „Linux“.


Viena iš Linux grožybių yra ta, kad galite valdyti beveik viską. Taip sistemos administratorius gali puikiai valdyti savo sistemą ir geriau panaudoti sistemos išteklius.

Nors kai kurie galbūt niekada negalvojo apie tai padaryti, svarbu žinoti, kad Linux sistemoje galite apriboti, kiek išteklių ir kiek laiko gali naudoti vienas vartotojas.

Taip pat skaitykite: Kaip padidinti atidarytų failų skaičių sistemoje Linux

Šioje trumpoje temoje parodysime, kaip apriboti vartotojo pradedamų procesų skaičių ir kaip patikrinti esamus limitus bei juos keisti.

Prieš eidami toliau, turime atkreipti dėmesį į du dalykus:

  1. Norint pakeisti vartotojo apribojimus, jums reikia root prieigos prie sistemos
  2. Jei ketinate keisti šias ribas, turite būti ypač atsargūs

Norėdami nustatyti naudotojų apribojimus, turėsime redaguoti šį failą:


/etc/security/limits.conf

Šis failas naudojamas taikant ulimit, sukurtą naudojant pam_module.

Failo sintaksė yra tokia:

<domain> <type> <item> <value>

Čia mes sustosime aptarti kiekvieną iš variantų:

  • Domenas – tai naudotojų vardai, grupės, orientaciniai diapazonai ir kt
  • Tipas – švelnios ir griežtos ribos
  • Elementas – elementas, kuris bus ribojamas – branduolio dydis, failo dydis, nproc ir kt.
  • Vertė – tai nurodytos ribos vertė

Geras limito pavyzdys:

@student          hard           nproc                20

Aukščiau pateiktoje eilutėje nustatytas griežtas daugiausiai 20 procesų apribojimas „studentas“ grupėje.

Jei norite pamatyti tam tikro proceso ribas, galite tiesiog „katinti“ apribojimų failą, pvz.:


cat /proc/PID/limits

Kai PID yra tikrasis proceso ID, proceso ID galite sužinoti naudodami komandą ps. Norėdami gauti išsamesnį paaiškinimą, perskaitykite mūsų straipsnį, kuriame sakoma - Raskite veikiančius Linux procesus ir nustatykite procesų apribojimus vienam vartotojui

Taigi čia yra pavyzdys:


cat /proc/2497/limits
Pavyzdžio išvestis

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   

Visos eilutės yra beveik savaime suprantamos. Tačiau jei norite rasti daugiau nustatymų, kuriuos galite įvesti faile limits.conf, galite peržiūrėti čia pateiktą vadovą.

Jei turite klausimų ar pastabų, nedvejodami pateikite juos toliau pateiktame komentarų skyriuje.