Я использую Ubuntu 14.04, когда пытаюсь синхронизировать каталог с unison, используя опцию repeat=watch
. Каталог содержит ~125K
файлов, но я ограничиваю количество файлов, которые может обрабатывать унисон. Это ошибка, которую я получаю:
Неустранимая ошибка: Сервер: Ошибка наблюдателя файловой системы: невозможно добавить наблюдателя: достигнут системный лимит.
Наблюдатель можно отключить, установив для параметра 'watch' значение false.
Я искал дополнительную информацию, запустив унисон с debug=all
, но это единственные строки, которые я могу найти, связанные с ошибкой.
Есть идеи, какие системные настройки необходимо изменить, чтобы обойти этот предел?
Можно добавить строку watch = false
к профилю унисона, и это должно работать, хотя без "преимуществ" наблюдателя.
Я вполне уверен, что проблема не с Унисоном, а с inotify
. При использовании опции repeat=watch
Унисон называет программу unison-fsmonitor
помощника, которая использует inotify
для наблюдения файловой системы за изменениями. Это помещает" часы " на каждом файле, который Вы синхронизируете с Унисоном.
По умолчанию существует верхний предел количества часы , отдельный пользователь может вызвать. На моей машине, что верхний предел - только 8 192. Можно увеличить число часов путем редактирования файла
/proc/sys/fs/inotify/max_user_watches
, я был бы немного обеспокоен, что, так как Вы хотите смотреть о 125k файлах и максимуме по умолчанию, только о 8k, Вы могли бы видеть поразительный хит в производительности при увеличении максимума так очень.