Достигнут пользовательский лимит на часы inotify в Ubuntu 16.04

Я только что установил Ubuntu 16.04 и получаю это предупреждение при запуске SmartGit :

IOException: User limit of inotify watches reached

Более того, я получаю это предупреждение при запуске tail -f:

tail: inotify resources exhausted 

tail: inotify cannot be used, reverting to polling

Я никогда не получал эту ошибку с Ubuntu 14.04, а приложения и файлы, которые я использую в новой Ubuntu, были такими же, как и в предыдущей версии.

Единственное существенное отличие состоит в том, что я добавил дополнительный жесткий диск на ПК и настроил инструмент резервного копирования Ubuntu. Может ли эта проблема быть связана со вторым диском или с инструментом резервного копирования?

43
задан 10 May 2016 в 20:36

3 ответа

Текущее значение по умолчанию для Xenial - 8192 (см. Fs / notify / inotify / inotify_user.c в исходном коде ядра), вы можете проверить это, напечатав файл на стандартный вывод:

cat /proc/sys/fs/inotify/max_user_watches
8192

Вы можете поднять число, например, удваивая это до 16384, используя:

echo 16384 | sudo tee /proc/sys/fs/inotify/max_user_watches

имейте в виду, что часы inotify действительно потребляют память, я думаю, что это составляет около 160 байтов на часы в 64-битных системах.

Чтобы установить это навсегда, добавьте запись в /etc/sysctl.conf, например:

echo fs.inotify.max_user_watches=16384 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

.. или отредактируйте вручную /etc/sysctl.conf (вам нужны права суперпользователя для его обновления), а затем запустить sudo sysctl -p

0
ответ дан 10 May 2016 в 20:36

Выше ответов работают отлично, но это не объясняет почему, который я осматривал к здесь своей попытке для полного ответа -

Почему?

Программы, которые синхронизируют файлы, такие как Dropbox, мерзавец и т.д., используют inotify для замечания изменений в файловой системе. Предел может быть, видят -

cat /proc/sys/fs/inotify/max_user_watches

Для меня, он показывает 100000 . Когда этого предела недостаточно для контроля всех файлов в каталоге, он бросает эту ошибку.

<час>

Увеличение количества inotify наблюдателей (Короткая версия):

, Если Вы работаете Debian, Redhat или другой подобный дистрибутив Linux , выполняет следующее в терминале:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

, Если Вы работаете ArchLinux, выполняет следующую команду вместо этого (см. здесь для почему):

echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system

Затем вставка это в Вашем терминале и нажатии на входит для выполнения его.

<час>

Технические детали:

Слушают использование inotify по умолчанию на Linux для контроля каталогов для изменений. Весьма распространено встретиться с системным пределом на количество файлов, которые можно контролировать. Например, (64 бита) Lucid Ubuntu inotify предел установлены на 8 192.

можно получить текущий inotify предел часов файла путем выполнения:

$ cat /proc/sys/fs/inotify/max_user_watches

, Когда этого предела недостаточно для контроля всех файлов в каталоге, предел должен быть увеличен для, Слушают работу правильно.

можно установить новый предел, временный с:

$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p

, Если Вам нравится делать Ваш предел постоянным, используйте:

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

Вы, возможно, также должны обратить внимание на значения max_queued_events и max_user_instances, если Слушают, продолжает жаловаться.

Источник: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

0
ответ дан 17 April 2019 в 03:55

Можно проверить существующий Предел и на основе которого можно изменить его согласно требованию

To Check : cat /proc/sys/fs/inotify/max_user_watches To Alter : sudo sysctl fs.inotify.max_user_watches=524288

, Это разрешит ошибку.

0
ответ дан 17 April 2019 в 03:55

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

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