Plötzlich stoße ich auf ein Problem. Alle meine Anwendungen und der Server liefen einwandfrei, und plötzlich wird die Anzahl der geöffneten Dateien angezeigt.
Ich überprüfe es mit diesem Befehl:
cat /proc/sys/fs/file-nr
Wenn ich das überprüfe 44544 0 128000
, wird angezeigt, dass 44544 die Anzahl der geöffneten Dateien ist.
Aber wenn ich mit diesem Befehl überprüfe - lsof | wc -l
es zeigt - 28384.
Welches ist also richtig?
Mein maximales Limit für offene Dateien ist 65535
ulimit -a
open files (-n) 65535
Ich möchte die Top-5-Prozesse kennen, bei denen mehr offene Dateien verwendet werden. Ich kann dies von bekommen, lsof
aber die hier gezeigte Anzahl unterscheidet sich sehr von dem anderen Befehl, den ich oben erwähnt habe.
Kann ich die Details der von diesem Befehl gezählten Prozesse abrufen cat /proc/sys/fs/file-nr
?
Laut dem unten angegebenen Link können wir keine offenen Dateideskriptoren anzeigen, aber nicht mit dem Befehl lsof
Gibt es eine Arbeit für mich? Ich muss herausfinden, welcher Prozess plötzlich mit mehr offenen Dateien begonnen hat.
UPDATE Sorry Leute für die Mühe. Ich habe den Fehler gefunden, den ich gemacht habe, ich habe NICHT lsof | wc -l von root aus überprüft. Das ist der Grund, warum ich einen großen Unterschied sah.
Trotzdem gibt es einen Unterschied zwischen der Ausgabe von Datei -nr und lsof | wc -l (von root). lsof count ist mehr als file -nr count. der grund dafür ist, dass die datei -nr einige der verzeichnisse ignoriert (die von lsof als dateien betrachtet werden). ich habe diesen grund durch eine kleine recherche bei google selbst gefunden. Sowieso! Danke Jungs für all die Hilfe!
quelle
lsof | wc -l
wirklich eine negative Zahl?Antworten:
Hier scheinen zwei Fragen im Spiel zu sein. Eine vollständige Dokumentation der Strukturen file-nr und file-max finden Sie unter
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
Dies definiert die Felder in dieser Datei als:
Hoffentlich ist das klar genug. Die zweite Frage wurde im oben genannten Thread beantwortet ( /server/485262/number-of-file-descriptors-different-between-proc-sys-fs-file-nr-and-proc-). pi ) und scheint sich entweder zu entwickeln
Die Schwierigkeit, hierfür genaue Metriken zu erhalten, ist erheblich, da die Anzahl der an einem bestimmten Punkt verwendeten FDs auf einem System sehr schnell schwanken kann.
Der folgende Thread schlägt ein Filterschema für den 'lsof'-Ansatz vor:
/server/396872/why-or-how-does-the-number-of-open-file-descriptors-in-use-by-root-exceed-ulim
quelle
ulimit
für mich sagt, ich kann bis zu 1024 Dateien öffnen, wennlsof | wc -l
ich schon 1545 besitze?lsof
undulimit
für die Antwort auf Ihre Frage.