Я столкнулся с проблемой внезапно; все мои приложения и сервер работали нормально, и внезапно я вижу, как увеличивается число открытых файлов.
Я проверяю это с помощью этой команды:
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
самом деле показывает отрицательное число?