系统参数影响

linux 系统下, gfsnotify 模块使用的是系统的 inotify 特性来实现的文件/目录监控,因此该功能在使用时会受到系统的两个内核参数限制:

  • fs.inotify.max_user_instances:表示当前用户可创建的 inotify 监控实例数量,即 gfsnotify.New 方法创建的 Watcher 对象数量,一个 Watcher 对象对应系统的一个 inotify 实例,系统默认数量为: 128

  • fs.inotify.max_user_watches:表示一个 inotify 实例可添加的监控文件队列大小,往同一个 inotify 添加的监控文件超过该数量限制则会失败,并且会有系统错误日志,系统默认数量往往为: 8192(有的系统该数值会比较大一些)。

查看与修改

fs.inotify.max_user_instances为例,在linux系统下,可以通过以下命令查看fs.inotify.max_user_instances的当前值:

  1. cat /proc/sys/fs/inotify/max_user_instances

如果需要修改该值,可以使用以下命令(例如将值修改为 1024):

  1. sudo sysctl -w fs.inotify.max_user_instances=1024

要永久修改该值,可以将以下内容添加到/etc/sysctl.conf文件中:

  1. fs.inotify.max_user_instances=1024

然后执行以下命令使更改生效:

  1. sudo sysctl -p