Я столкнулся с проблемой внезапно; все мои приложения и сервер работали нормально, и внезапно я вижу, как увеличивается число открытых файлов.
Я проверяю это с помощью этой команды:
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 count больше, чем file -nr count. Причина этого в том, что file -nr игнорирует некоторые каталоги (которые lsof считает файлами). Я нашел эту причину в небольшом исследовании самого Google. в любом случае! спасибо ребята за помощь!
источник
lsof | wc -l
самом деле показывает отрицательное число?Ответы:
Кажется, здесь есть два вопроса. Во-первых, полную документацию о структурах file-nr и file-max можно найти по адресу
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
Это определяет поля в этом файле как:
Надеюсь, это достаточно ясно. На второй вопрос ответили в указанной выше ветке ( /server/485262/number-of-file-descriptors-different-between-proc-sys-fs-file-nr-and-proc- пи ) и, кажется, передать либо
Сложность получения точных метрик для этого является значительной, так как количество FD, используемых в любой данной точке, может очень быстро колебаться в системе.
Следующий поток предлагает схему фильтрации для подхода «lsof»:
/server/396872/why-or-how-does-the-number-of-open-file-descriptors-in-use-by-root-exceed-ulim
источник
ulimit
для меня говорит, что я могу открыть до 1024 файлов, еслиlsof | wc -l
говорит, что у меня уже 1545?lsof
иulimit
для ответа на ваш вопрос.