dacă primiți eroare” prea multe fișiere deschise (24)”, atunci aplicația/comanda/scriptul dvs. atinge limita maximă de fișiere deschise permisă de linux. Trebuie să măriți limita de fișiere deschise după cum urmează:
creșteți limita
limită Per utilizator
deschideți fișierul: /etc/security/limits.conf
lipiți următoarele spre sfârșit:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 este un număr corect. Nu sunt sigur ce este limita maximă, dar 999999 (șase-9) a lucrat pentru mine o dată în măsura în care îmi amintesc.
după ce salvați fișierul, poate fi necesar să vă deconectați și să vă conectați din nou.
Pam-limits
am citit în multe locuri că un pas suplimentar este neede pentru limită pentru a schimba pentru procesele daemon. Încă nu am avut nevoie de urmărire, dar dacă modificările de mai sus nu funcționează pentru dvs., puteți încerca acest lucru.
deschide /etc/pam.d/common-session
adaugă următorul rând:
session required pam_limits.so
limită la nivel de sistem
setați această limită mai mare decât limita de utilizator setată mai sus.
deschis /etc/sysctl.conf
adăugați următoarele:
fs.file-max = 2097152
alerga:
sysctl -p
de mai sus va crește numărul „total” de fișiere care pot rămâne deschise la nivel de sistem.
Verificați noi limite
utilizați următoarea comandă pentru a vedea limita maximă a descriptorilor de fișiere:
cat /proc/sys/fs/file-max
Hard Limit
ulimit -Hn
Soft Limit
ulimit -Sn
dacă sunteți conectat ca root:
verificați limita pentru alt utilizator
doar înlocuiți www-data
de linux username doriți să verificați limitele pentru:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Verificați limitele unui proces care rulează:
găsiți procesul-id (PID):
ps aux | grep process-name
să presupunem că XXX este PID, apoi executați următoarele comenzi pentru a verifica limitele:
cat /proc/XXX/limits