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


În Linux, puteți modifica cantitatea maximă de fișiere deschise. Puteți modifica acest număr utilizând comanda ulimit. Vă oferă posibilitatea de a controla resursele disponibile pentru shell-ul sau procesul început de acesta.

Citiți și: setați limitele proceselor de rulare Linux la nivel de utilizator

În acest scurt tutorial vă vom arăta cum să verificați limita actuală a fișierelor deschise și a descrierilor fișierelor, dar pentru a face acest lucru, va trebui să aveți acces root la sistemul dvs.

În primul rând, să vedem cum putem afla numărul maxim de descriptori de fișiere deschise pe sistemul dumneavoastră Linux.

Găsiți Linux Open File Limit

Valoarea este stocată în:

cat /proc/sys/fs/file-max

818354

Numărul pe care îl veți vedea arată numărul de fișiere pe care un utilizator le poate deschide pe sesiune de conectare. Rezultatul poate fi diferit în funcție de sistemul dvs.

De exemplu, pe un server CentOS al meu, limita a fost setată la 818354, în timp ce pe serverul Ubuntu pe care îl rulez acasă limita implicită era setat la 176772.

Dacă doriți să vedeți limitele hard și soft, puteți utiliza următoarele comenzi:

Verificați Hard Limit în Linux

ulimit -Hn

4096

Verificați limitele soft în Linux

ulimit -Sn

1024

Pentru a vedea valorile hard și soft pentru diferiți utilizatori, puteți comuta pur și simplu utilizatorul cu „su” la utilizatorul care limitează doriți să verificați.

De exemplu:

su marin
ulimit -Sn

1024
ulimit -Hn

4096

Cum să verificați limitele descriptoarelor de fișiere la nivel de sistem în Linux

Dacă rulați un server, unele dintre aplicațiile dvs. pot necesita limite mai mari pentru descriptorii de fișiere deschise. Un bun exemplu pentru astfel de servicii sunt serviciile MySQL/MariaDB sau serverul web Apache.

Puteți crește limita de fișiere deschise în Linux prin editarea directivei kernel fs.file-max. În acest scop, puteți utiliza utilitarul sysctl.

Sysctl este folosit pentru a configura parametrii kernelului în timpul rulării.

De exemplu, pentru a crește limita de fișiere deschise la 500000, puteți folosi următoarea comandă ca root:

sysctl -w fs.file-max=500000

Puteți verifica valoarea curentă pentru fișierele deschise cu următoarea comandă:

cat /proc/sys/fs/file-max

Cu comanda de mai sus, modificările pe care le-ați făcut vor rămâne active doar până la următoarea repornire. Dacă doriți să le aplicați definitiv, va trebui să editați următorul fișier:

vi /etc/sysctl.conf

Adăugați următorul rând:

fs.file-max=500000

Desigur, puteți modifica numărul în funcție de nevoile dvs. Pentru a verifica din nou modificările, utilizați:

cat /proc/sys/fs/file-max

Utilizatorii vor trebui să se deconecteze și să se autentifice din nou pentru ca modificările să intre în vigoare. Dacă doriți să aplicați imediat limita, puteți utiliza următoarea comandă:

sysctl -p

Setați limitele de fișier deschis la nivel de utilizator în Linux

Exemplele de mai sus au arătat cum să setați limite globale, dar este posibil să doriți să aplicați limite pe bază de utilizator. În acest scop, ca utilizator root, va trebui să editați următorul fișier:

vi /etc/security/limits.conf

Dacă sunteți administrator Linux, vă sugerez să vă familiarizați foarte mult cu acel fișier și cu ce puteți face cu el. Citiți toate comentariile din acesta, deoarece oferă o mare flexibilitate în ceea ce privește gestionarea resurselor sistemului prin limitarea utilizatorilor/grupurilor la diferite niveluri.

Liniile pe care ar trebui să le adăugați iau următorii parametri:

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

Iată un exemplu de setare a limitelor soft și stricte pentru utilizatorul marin:

## Example hard limit for max opened files
marin        hard nofile 4096
## Example soft limit for max opened files
marin        soft nofile 1024

Gânduri finale

Acest scurt articol v-a arătat un exemplu de bază despre cum puteți verifica și configura limitele globale și la nivel de utilizator pentru numărul maxim de fișiere deschise.

În timp ce tocmai am zgâriat suprafața, vă încurajez să aveți o privire mai detaliată și să citiți despre /etc/sysctl.conf și /etc/security/limits.conf și invata cum sa le folosesti. Îți vor fi de mare ajutor într-o zi.