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