web-dev-qa-db-fra.com

Répétition d'unisson = nombre de fichiers surveillé?

J'utilise Ubuntu 14.04 lorsque je tente de synchroniser un répertoire à l'unisson à l'aide de l'option repeat=watch. Le répertoire contient les fichiers ~125K mais je limite une limite au nombre de fichiers qu'unison peut gérer. C'est l'erreur que je reçois:

Erreur fatale: Serveur: Erreur d'observateur du système de fichiers: impossible d'ajouter un observateur: limite du système atteinte.
L’observateur peut être désactivé en réglant la préférence "surveillance" sur false.

J'ai cherché plus d'informations en exécutant à l'unisson avec debug=all mais ce sont les seules lignes que je peux trouver liées à l'erreur.

Avez-vous une idée des paramètres système à modifier pour contourner cette limite?

4
portlandRyan

Je suis à peu près certain que le problème ne vient pas de Unison, mais de inotify. Lorsque vous utilisez l'option repeat=watch, Unison appelle un programme d'assistance unison-fsmonitor qui utilise inotify pour surveiller les modifications apportées au système de fichiers. Il met un "watch" sur chaque fichier que vous synchronisez avec Unison.

Par défaut, le nombre de montres peut être évoqué par un seul utilisateur. Sur ma machine, cette limite supérieure n’est que de 8192. Vous pouvez augmenter le nombre de montres en modifiant le fichier.

/proc/sys/fs/inotify/max_user_watches

Étant donné que vous voulez regarder environ 125 000 fichiers et que le maximum par défaut ne représente que 8 000 $, je suis un peu inquiet. Vous risqueriez de subir des pertes de performances considérables si vous augmentez le maximum autant.

4
Mike Pierce

Vous pouvez ajouter la ligne watch = false à votre profil à l'unisson et cela devrait fonctionner, bien que sans les "avantages" de l'observateur.

0
Leopd