Lors de l'exécution de tail -f filename
, j'ai reçu le message suivant:
tail: inotify cannot be used, reverting to polling: Too many open files
Est-ce un problème potentiel?
Comment diagnostiquer ce qui est responsable de tous les fichiers ouverts? J'ai une liste de processus suspects, mais s'ils ne sont pas les coupables, les instructions qui ne se basent pas sur le processus à vérifier seraient utiles.
Vous pouvez utiliser lsof pour comprendre qui ouvre autant de fichiers. Habituellement, c’est un serveur (Web) qui ouvre autant de fichiers, mais lsof vous aidera sûrement à en identifier la cause.
Une fois que vous comprenez qui est le méchant, vous pouvez
Si la sortie de lsof est assez énorme, essayez de la rediriger vers un fichier puis ouvrez le fichier.
Exemple (vous devrez peut-être Ctrl+C la première commande)
lsof > ~/Desktop/lsof.log
cat ~/Desktop/lsof.log | awk '{ print $2 " " $1; }' | sort -rn | uniq -c | sort -rn | head -20
vim ~/Desktop/lsof.log
Si quelqu'un d'autre en a besoin ...
ulimit -a
Affiche toutes les limites actuelles. De manière spécifique, ulimit -n 70000
définira la limite de descripteur de fichier.
Également...
cat /proc/sys/fs/file-max
Affiche/définit la limite du noyau si elle est modifiée.
Sudo echo 200000 > /proc/sys/fs/file-max
Une explication beaucoup plus détaillée peut être trouvée à ...
Comment augmenter la limite de fichiers ouverts pour un utilisateur non root?