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!
lsof | wc -l
wirklich eine negative Zahl?