Je rencontre tout à coup un problème; toutes mes applications et le serveur fonctionnaient bien et tout d'un coup je vois le nombre de fichiers ouverts monter.
Je le vérifie avec cette commande:
cat /proc/sys/fs/file-nr
Lorsque je vérifie cela, cela montre 44544 0 128000
que 44544 est le nombre de fichiers ouverts.
Mais quand je vérifie avec cette commande - lsof | wc -l
elle montre - 28384.
Alors, lequel est correct?
Ma limite maximale de fichiers ouverts est de 65535
ulimit -a
open files (-n) 65535
Je veux connaître les 5 meilleurs processus qui utilisent des fichiers plus ouverts. Je peux l'obtenir depuis lsof
mais le nombre indiqué 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 dit que nous ne pouvons pas, Comment afficher les descripteurs de fichiers ouverts mais pas en utilisant la commande lsof
Y a-t-il un travail pour moi? J'ai besoin de trouver le processus qui a commencé à utiliser des fichiers plus ouverts tout d'un 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 à partir de la racine. c'est la raison pour laquelle je voyais une énorme différence.
il y a toujours une différence entre la sortie du fichier -nr et lsof | wc -l (à partir de la racine). Le nombre de lsof est supérieur au nombre de fichiers -nr. la raison en est que le fichier -nr ignore certains des répertoires (qui sont considérés comme des fichiers par lsof). J'ai trouvé cette raison par une petite recherche sur google lui-même. de toute façon! Merci les gars pour votre aide!
la source
lsof | wc -l
vraiment un nombre négatif?Réponses:
Il semble y avoir deux questions en jeu ici. Tout d'abord, une documentation complète des structures file-nr et file-max peut être trouvée sur
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
Cela définit les champs de ce fichier comme:
J'espère que c'est assez clair. La deuxième question a été répondue dans le fil mentionné ci-dessus ( /server/485262/number-of-file-descriptors-different-between-proc-sys-fs-file-nr-and-proc- pi ) et semble appartenir soit à
La difficulté d'obtenir des métriques précises pour cela est importante, car le nombre de FD utilisés à un moment donné peut fluctuer très rapidement sur un système.
Le fil suivant suggère un schéma de filtrage pour l'approche «lsof»:
/server/396872/why-or-how-does-the-number-of-open-file-descriptors-in-use-by-root-exceed-ulim
la source
ulimit
pour moi dit que je peux avoir jusqu'à 1024 fichiers ouverts, silsof | wc -l
dit que j'ai déjà 1545?lsof
etulimit
pour la réponse à votre question.