Je rencontre un problème tout à coup; Toutes mes applications et le serveur fonctionnaient bien et tout à coup, je vois le nombre de fichiers ouverts filmer.
Je le contrôle avec cette commande:
cat /proc/sys/fs/file-nr
Quand je vérifie avec cela cela indique 44544 0 128000
, SO 44544 est le nombre de fichiers ouverts.
Mais quand je vérifie avec cette commande - lsof | wc -l
Il montre - 28384.
Alors, lequel est correct?
Ma limite maximale des fichiers ouverts est 65535
ulimit -a
open files (-n) 65535
Je veux connaître les 5 meilleurs processus qui utilisent plus de fichiers ouverts. Je peux obtenir cela de lsof
mais le nombre montré ici est très différent de l'autre commande que j'ai mentionnée ci-dessus.
Puis-je obtenir les détails des processus comptés par cette commande cat /proc/sys/fs/file-nr
?
Selon le lien mentionné ci-dessous, il est indiqué que nous ne pouvons pas, Comment afficher les descripteurs de fichier ouverts mais n'utilise pas la commande LSOF
Y a-t-il un travail autour pour moi? J'ai besoin de trouver quel processus a commencé à utiliser plus de fichiers ouverts tout à coup.
[~ # ~] Mise à jour [~ # ~] désolé les gars pour le problème. J'ai trouvé l'erreur que je faisais je ne vérifiais pas lsof | wc -l de la racine. C'est la raison pour laquelle je voyais une énorme différence.
toujours il y a une différence entre la sortie du fichier -NR et lsof | wc -l (de racine). Le nombre de lsof est plus que le nombre de fichiers -NR. La raison en est que le fichier -NR -NR ignore certains des répertoires (qui sont considérés comme des fichiers de LSOF) J'ai trouvé cette raison par une recherche limitée sur Google elle-même. de toute façon! Merci les gars pour votre aide!
Il semble y avoir deux questions en jeu ici. Tout d'abord, la documentation complète des structures de fichiers-nr et de fichier-max peut être trouvée à
https://www.kernel.org/doc/documentation/sysctl/fs.txt
Cela définit les champs de ce fichier comme suit:
Les trois valeurs du fichier-NR désignent le nombre de poignées de fichier allouées, le nombre de poignées de fichier allouées mais non utilisées et le nombre maximal de poignées de fichier. Linux 2.6 Toujours rapporte toujours 0 comme le nombre de poignées de fichier gratuits - ce n'est pas une erreur, cela signifie simplement que le nombre de poignées de fichier allouées correspond exactement au nombre de poignées de fichier utilisés.
J'espère que c'est assez clair. La deuxième question a été répondu dans le fil mentionné ci-dessus ( https://serverfault.com/questions/485262/number-of-file-descriptors-Différent-between-proc-sys-fs-file-nr- and-proc-pi ) et semble se développer soit
La difficulté d'obtenir des métriques précises pour cela est significative, car le nombre de FD utilisées à tout point peut fluctuer très rapidement sur un système.
Le thread suivant suggère un schéma de filtrage pour l'approche "LSOF":