Слишком много открытых файлов - как найти преступника

При выполнении tail -f filename, Я получил следующее сообщение:

tail: inotify cannot be used, reverting to polling: Too many open files

Это - потенциальная проблема?

Как я диагностирую то, что ответственно за все открытые файлы? У меня есть список подозрительных процессов, но если они не оказываются преступниками, инструкции, которые не полагаются на знание, которые обрабатывают для проверки, были бы полезны.

69
задан 28 August 2012 в 07:07

2 ответа

Можно использовать lsof для понимания, кто открывает столько файлов. Обычно это - (веб-) сервер, который открывает столько файлов, но lsof, конечно, поможет Вам определить причину.

, После того как Вы понимаете, кто плохой парень, Вы можете

, Если произведено от lsof является довольно огромной попыткой, перенаправляющей его в файл, и затем откройте Пример файла

(Вы могли бы иметь к Ctrl + C первая команда)

lsof > ~/Desktop/lsof.log
cat ~/Desktop/lsof.log | awk '{ print $2 " " $1; }' | sort -rn | uniq -c | sort -rn | head -20
vim ~/Desktop/lsof.log
71
ответ дан 21 October 2019 в 12:14

В случае, если кому-либо еще нужен он...

ulimit -a

отобразит все ограничения по току. Конкретно ulimit -n 70000 установит предел дескриптора файла.

Также...

cat /proc/sys/fs/file-max

отобразит/установит предел ядра, если отредактировано.

sudo echo 200000 > /proc/sys/fs/file-max

А намного более подробное объяснение может быть найдено в...

, Как я увеличиваю открытый предел файлов для некорневого пользователя?

23
ответ дан 21 October 2019 в 12:14

Другие вопросы по тегам:

Похожие вопросы: