Syncthing在文件同步时报错,failed to set up inotify handler. Please increase inotify limits, see https://docs.syncthing.net/users/faq.html#inotify-limits 。这是一个非常经典的 Linux 服务器部署 Syncthing 时的报错。
1、报错原因
Inotify 是 Linux 内核的一个特性,用于“实时监控文件变化”。Syncthing 靠它来实现:只要你修改了文件,它能秒级感知并开始同步,而不需要等每小时一次的全盘扫描。
Debian 默认的 inotify 限制较低(通常是 8192),当你的同步文件夹中文件或目录数量较多时,这个额度就用光了,导致实时监控失效。
2、解决方法
echo "fs.inotify.max_user_watches=204800" | sudo tee -a /etc/sysctl.d/90-syncthing.conf
sudo sysctl -p /etc/sysctl.d/90-syncthing.conf
3、验证是否成功
cat /proc/sys/fs/inotify/max_user_watches
如果返回204800,说明已经调整成功。
Syncthing 管理界面,操作->重启Syncthing
解释:每个 inotify watch 在 64 位系统上大约占用 1KB 的内核内存。设置为 204800 约占用 200MB 内存。 对于现代服务器来说,这笔内存开销换取文件同步的“实时性”是非常划算的。
如果你的同步文件超过 20 万个,我们可以把这个数字再调大一些,比如 524288。
Syncthing系列学习
评论列表(1条)
[…] Syncthing文件同步服务的跨平台迁移 Linux下Docker 安装配置Syncthing的最佳实践 Syncthing报错,failed to set up inotify handler. Please increase inotify limits […]