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?
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.
Vous pouvez ajouter la ligne watch = false
à votre profil à l'unisson et cela devrait fonctionner, bien que sans les "avantages" de l'observateur.