Als u een fout krijgt” Too many open files (24) ” dan raakt uw applicatie/Commando/script de maximale open file limit toegestaan door linux. U moet de limiet voor open bestanden verhogen zoals hieronder:
limiet voor verhogen
Per gebruiker
Open bestand: /etc/security/limits.conf
volgende plakken naar het einde:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 is redelijk nummer. Ik weet niet zeker Wat is max limit, maar 999999 (zes-9) werkte voor mij een keer voor zover ik me herinner.
zodra u het bestand opslaat, moet u mogelijk opnieuw afmelden en inloggen.
pam-limieten
ik heb op veel plaatsen gelezen dat er een extra stap nodig is voor limiet om te veranderen voor daemon processen. Ik heb nog niet nodig VOLGENDE, maar als bovenstaande wijzigingen niet werken voor u, kunt u dit een keer te proberen.
Open /etc/pam.d/common-session
volgende regel toevoegen:
session required pam_limits.so
systeembrede limiet
Stel deze hoger in dan de hierboven ingestelde gebruikerslimiet.
Open /etc/sysctl.conf
volgende toevoegen:
fs.file-max = 2097152
uitvoeren:
sysctl -p
hierboven zal het “totale” aantal bestanden dat systeemwijd open kan blijven, verhogen.
Controleer op Nieuwe Beperkingen
Gebruik de volgende opdracht om te zien maximale aantal bestandsdescriptors:
cat /proc/sys/fs/file-max
Harde Limiet
ulimit -Hn
Soft Limit
ulimit -Sn
als u bent aangemeld als root:
Controleer de limiet voor de andere gebruiker
vervang www-data
door linux gebruikersnaam die u wilt controleren grenswaarden voor:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Controleer de grenzen van een actief proces:
Vinden proces-id (PID):
ps aux | grep process-name
Stel, XXX PID, voer vervolgens de volgende commando ‘ s uit om te controleren grenzen:
cat /proc/XXX/limits