系统参数影响
在 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