系统参数影响
在 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的当前值:
cat /proc/sys/fs/inotify/max_user_instances
如果需要修改该值,可以使用以下命令(例如将值修改为 1024):
sudo sysctl -w fs.inotify.max_user_instances=1024
要永久修改该值,可以将以下内容添加到/etc/sysctl.conf文件中:
fs.inotify.max_user_instances=1024
然后执行以下命令使更改生效:
sudo sysctl -p