Я зіткнувся з проблемою раптом; всі мої програми та сервер працювали нормально, і раптом я бачу, як кількість відкритих файлів піднімається.
Я перевіряю це за допомогою цієї команди:
cat /proc/sys/fs/file-nr
Коли я перевіряю це, це показує 44544 0 128000
, тому 44544 - це кількість відкритих файлів.
Але коли я перевіряю цією командою - lsof | wc -l
вона показує - 28384.
Отже, який з них правильний?
Моя максимальна кількість відкритих файлів - 65535
ulimit -a
open files (-n) 65535
Хочу знати топ-5 процесів, які використовують більш відкриті файли. Я можу це отримати, lsof
але кількість показаних тут сильно відрізняється від іншої команди, про яку я згадував вище.
Чи можу я отримати детальну інформацію про процеси, які рахуються цією командою cat /proc/sys/fs/file-nr
?
Згідно з наведеним нижче посиланням, він говорить, що ми не можемо, як відобразити відкриті дескриптори файлів, але не використовуючи команду lsof
Чи є навколо мене робота? Мені потрібно знайти, який процес почався з раптовішими відкритими файлами.
ОНОВЛЕННЯ Вибачте, хлопці за проблему. Я виявив помилку, яку я робив, Я НЕ перевіряв lsof | wc -l від root. тому я бачив величезну різницю.
все ж є різниця між виведенням файлу -nr та lsof | wc -l (від кореня). lsof кількість більше, ніж кількість файлів -nr. Причиною цього є те, що файл -nr ігнорує деякі каталоги (які lsof вважаються файлами). Я знайшов цю причину завдяки дослідженню лайла на самій Google. все одно! дякую хлопці за всю допомогу!
lsof | wc -l
справді відображається від’ємне число?