Cum să setați limite pentru procesele care rulează utilizatorii în Linux


Una dintre frumusețile Linux este că poți controla aproape totul despre el. Acest lucru oferă unui administrator de sistem un control excelent asupra sistemului său și o mai bună utilizare a resurselor sistemului.

Deși unii s-ar putea să nu se fi gândit niciodată să facă acest lucru, este important să știți că în Linux puteți limita cât de multă resurse poate folosi un singur utilizator și pentru cât timp.

Citiți și: Cum să creșteți numărul limită de fișiere deschise în Linux

În acest scurt subiect, vă vom arăta cum să limitați numărul de procese începute de utilizator și cum să verificați limitele actuale și să le modificați.

Înainte de a merge mai departe, trebuie să subliniem două lucruri:

  1. Aveți nevoie de acces root la sistemul dumneavoastră pentru a modifica limitele utilizatorilor
  2. Trebuie să fiți extrem de atenți dacă intenționați să modificați aceste limite

Pentru a seta limitele utilizatorilor, va trebui să edităm următorul fișier:


/etc/security/limits.conf

Acest fișier este folosit pentru a aplica ulimit creat de pam_module.

Fișierul are următoarea sintaxă:

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

Aici ne vom opri pentru a discuta fiecare dintre opțiuni:

  • Domeniu – aceasta include nume de utilizator, grupuri, intervale de ghid etc
  • Tip – limite moi și dure
  • Articol – elementul care va fi limitat – dimensiunea de bază, dimensiunea fișierului,  nproc etc.
  • Valoare – aceasta este valoarea pentru limita dată

Un eșantion bun pentru o limită este:

@student          hard           nproc                20

Linia de mai sus stabilește o limită strictă de maximum 20 procese în grupul „student”.

Dacă doriți să vedeți limitele unui anumit proces, puteți pur și simplu să „pisică” fișierul cu limite așa:


cat /proc/PID/limits

Unde PID este ID-ul procesului real, puteți afla ID-ul procesului folosind comanda ps. Pentru o explicație mai detaliată, citiți articolul nostru care spune: Găsiți procese Linux care rulează și setați limite de proces per nivel de utilizator

Deci iată un exemplu:


cat /proc/2497/limits
Ieșire eșantion

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   

Toate rândurile se explică de la sine. Cu toate acestea, dacă doriți să găsiți mai multe setări pe care le puteți introduce în fișierul limits.conf, puteți arunca o privire la manualul furnizat aici.

Dacă aveți întrebări sau comentarii, vă rugăm să nu ezitați să le trimiteți în secțiunea de comentarii de mai jos.