При запуске tail -f filename
я получил следующее сообщение:
tail: inotify cannot be used, reverting to polling: Too many open files
Это потенциальная проблема?
Как мне диагностировать, что отвечает за все открытые файлы? У меня есть список подозрительных процессов, но если они не окажутся виновными, инструкции, которые не зависят от знания, какой процесс проверять, были бы полезны.
filesystem
Эндрю Гримм
источник
источник
ulimit
?Ответы:
Вы можете использовать lsof, чтобы понять, кто открывает столько файлов. Обычно это (веб) сервер, который открывает так много файлов, но lsof наверняка поможет вам определить причину.
Как только вы поймете, кто плохой парень, вы можете
Если вывод lsof довольно большой, попробуйте перенаправить его в файл, а затем откройте файл
Пример (вам может понадобиться Ctrl+ Cпервая команда)
источник
lsof | awk '{ print $2; }' | uniq -c | sort -rn | head
uniq
работает только со смежными строками), запустить uniq, а затем снова выполнить сортировку. Такlsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
.:)
На случай, если кому-то еще это понадобится ...
Будет отображать все текущие ограничения. В частности,
ulimit -n 70000
будет установлен предел дескриптора файла.Также...
Будет отображать / устанавливать ограничение ядра, если оно отредактировано.
Более подробное объяснение можно найти на ...
Как увеличить лимит открытых файлов для пользователя без полномочий root?
источник