Я только что установил 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. Может ли эта проблема быть связана со вторым диском или с инструментом резервного копирования?
Ответы:
Текущее значение по умолчанию для Xenial - 8192 (см. Fs / notify / inotify / inotify_user.c в исходном коде ядра), вы можете убедиться в этом, напечатав файл в stdout:
Вы можете увеличить число, например, удвоив это значение до 16384, используя:
Имейте в виду, что часы Inotify действительно занимают память, я думаю, что это составляет около 160 байт на часы в 64-битных системах.
Чтобы установить это навсегда, добавьте запись в /etc/sysctl.conf, например:
.. или отредактируйте вручную
/etc/sysctl.conf
(вам нужны права root для его обновления), а затем запуститеsudo sysctl -p
источник
Вышеприведенные ответы работают отлично, но это не объясняет, почему я пытался найти здесь полный ответ -
Зачем?
Программы, которые синхронизируют файлы, такие как dropbox, git и т. Д., Используют inotify, чтобы заметить изменения в файловой системе. Предел можно увидеть по -
Для меня это показывает 100000 . Если этого ограничения недостаточно для отслеживания всех файлов в каталоге, он выдает эту ошибку.
Увеличение количества наблюдателей inotify (короткая версия):
Если вы используете Debian, RedHat или другой подобный дистрибутив Linux , запустите следующее в терминале:
Если вы используете ArchLinux , выполните следующую команду (см. Здесь, почему):
Затем вставьте его в свой терминал и нажмите Enter, чтобы запустить его.
Технические подробности:
Listen использует inotify по умолчанию в Linux для отслеживания изменений в каталогах. Нередко встречается системное ограничение на количество файлов, которые вы можете отслеживать. Например, предел inotify Ubuntu Lucid (64 бита) установлен равным 8192.
Вы можете получить текущий предел просмотра файлов inotify, выполнив:
Если этого предела недостаточно для мониторинга всех файлов в каталоге, для правильной работы Listen необходимо увеличить предельное значение.
Вы можете установить новый лимит временно с помощью:
Если вы хотите сделать свой лимит постоянным, используйте:
Вам также может понадобиться обратить внимание на значения max_queued_events и max_user_instances, если Listen продолжает жаловаться.
Источник: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
источник
Вы можете проверить существующий лимит и на основании этого вы можете изменить его в соответствии с вашими требованиями
To Check : cat /proc/sys/fs/inotify/max_user_watches To Alter : sudo sysctl fs.inotify.max_user_watches=524288
Это устранит ошибку.
источник