Si vous obtenez l’erreur « Trop de fichiers ouverts (24) », votre application / commande / script atteint la limite maximale de fichiers ouverts autorisée par linux. Vous devez augmenter la limite de fichier ouvert comme ci-dessous:
Augmenter la limite
Limite par utilisateur
Ouvrir le fichier: /etc/security/limits.conf
Coller suivant vers la fin:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 est un nombre équitable. Je ne sais pas quelle est la limite maximale, mais 999999 (Six – 9) a fonctionné pour moi une fois aussi loin que je me souvienne.
Une fois que vous avez enregistré le fichier, vous devrez peut-être vous déconnecter et vous reconnecter.
pam-limits
J’ai lu à de nombreux endroits qu’une étape supplémentaire est nécessaire pour que la limite change pour les processus démon. Je n’avais pas encore besoin de suivre, mais si les modifications ci-dessus ne fonctionnent pas pour vous, vous pouvez essayer.
Ouvrir /etc/pam.d/common-session
Ajouter la ligne suivante:
session required pam_limits.so
Limite à l’échelle du système
Définissez cette limite supérieure à la limite utilisateur définie ci-dessus.
Ouvrir /etc/sysctl.conf
Ajouter suivant:
fs.file-max = 2097152
Courir:
sysctl -p
Ci-dessus augmentera le nombre « total » de fichiers pouvant rester ouverts à l’échelle du système.
Vérifier les nouvelles limites
Utilisez la commande suivante pour voir la limite maximale des descripteurs de fichier:
cat /proc/sys/fs/file-max
Limite rigide
ulimit -Hn
Limite souple
ulimit -Sn
si vous êtes connecté en tant que root:
Vérifiez la limite pour un autre utilisateur
Remplacez simplement www-data
par un nom d’utilisateur linux pour lequel vous souhaitez vérifier les limites:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Vérifier les limites d’un processus en cours d’exécution :
Rechercher l’id de processus (PID):
ps aux | grep process-name
Supposons que XXX soit PID, puis exécutez les commandes suivantes pour vérifier les limites:
cat /proc/XXX/limits