Unison 重复=观看文件限制?

Unison 重复=观看文件限制?

我正在运行 Ubuntu 14.04,当尝试使用选项将目录与 unison 同步时repeat=watch。该目录包含~125K文件,但我接近 unison 可以处理的文件数量的限制。这是我收到的错误:

严重错误:服务器:文件系统观察器错误:无法添加观察器:已达到系统限制。
可以通过将首选项“watch”设置为 false 来禁用观察器。

我通过运行 unison 来搜索更多信息debug=all,但这些是我能找到的与该错误相关的唯一行。

您是否知道需要更改哪些系统设置才能解决此限制?

答案1

我相当肯定问题不在于 Unison,而在于inotify。当您使用 选项时repeat=watch,Unison 会调用一个辅助程序unison-fsmonitor,该程序用于inotify监视文件系统的更改。它会将一个“手表“在您使用 Unison 同步的每个文件上。

默认情况下,手表单个用户可以唤起。在我的机器上,上限只有 8192。您可以通过编辑文件来增加监视数量

/proc/sys/fs/inotify/max_user_watches

我有点担心,因为你想要观看大约 125k 个文件,而默认最大值只有大约 8k,如果你将最大值增加那么多,你可能会看到性能急剧下降。

答案2

Unison 使用三种文件。最相关的文件是配置文件,扩展名为 prf,默认存储在 .unison 中。每个配置文件指定与 unison 的特定用途相关的变量和首选项,例如应同步的目录以及用于执行此同步的机制。或者,可以在命令行中指定这些首选项。unison 使用的第二种文件是日志文件。事实上,unison 通常会生成其活动的详细说明。此说明保存在日志文件中,默认情况下该文件名为 unison.log,并放置在用户的主目录中。最后,为了确定已修改并需要更新的文件,unison 使用自动命名的存档文件,默认情况下该文件存储在 .unison 中。

文件: ~/.unison/home.prf

答案3

您可以将该行添加watch = false到您的 unison 配置文件中,它应该可以工作,尽管没有观察者的“好处”。

相关内容