我正在开发一个守护进程,它通过inotify监视文件事件,以便在访问文件时触发各种类型的事件.我已经读到,手表有点贵,因为内核存储的是被监视的每个文件的完整路径名.
多少块手表就太多了?
编辑:大多数情况下,我想知道..你有没有看到过明显的性能下降,如果是的话,有多少手表出现了这种情况?是的,我必须监视/递归(不过这是一个最小的自举系统).
我正在开发一个守护进程,它通过inotify监视文件事件,以便在访问文件时触发各种类型的事件.我已经读到,手表有点贵,因为内核存储的是被监视的每个文件的完整路径名.
多少块手表就太多了?
编辑:大多数情况下,我想知道..你有没有看到过明显的性能下降,如果是的话,有多少手表出现了这种情况?是的,我必须监视/递归(不过这是一个最小的自举系统).
/proc/sys/fs/inotify/max_user_watches
是current个手表的最大数量per user个.
从历史上看,内核默认设置为8192,但考虑到许多Linux发行版都对内核构建进行了大量定制,这在每个Linux系统上可能都不是真的.最近的内核更改[1]根据系统的RAM容量动态 Select [81921048576]范围内的默认值max_user_watches
.(5.11是包含此更改的第一个内核版本.)
AFAICT,root
可以将max_user_watches
更改为2147483647(231-1)或以下的任何值,只要您确信您有足够的RAM支持该数量的手表.
[1] https://github.com/torvalds/linux/commit/92890123749bafc317bbfacbe0a62ce08d78efb7