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.