我不知道是否应该只增加这个数字
检查是否达到了max_user_watches
值的简单方法是,使用inotify-tools
软件包中的inotifywatch
命令,并检查您是否仍然可以从文件中收集信息。
例如,对于我来说,运行inotifywatch -v /home/bruno/.profile
返回:
Establishing watches...
Total of 1 watches.
Finished establishing watches, now collecting statistics.
所以
inotify
在创建新的监视时没有任何问题,这里也没有问题。
如果您已经达到了inotify监视的最大限制,它会返回类似以下内容的信息:
Failed to watch /home/bruno/.profile; upper limit on inotify watches reached!
如果你看到类似这样的东西,那么说明你已经达到了限制,并且需要增加允许的监视器数量。
它会消耗更多的内存吗?
是的,确实会。但根据这篇
旧文章所说,与运行桌面的其他方面相比,它所消耗的数量是微不足道的。
--内存使用--
inotify的数据结构非常轻量:
每个inotify watch占用40字节
每个inotify设备占用68字节
每个inotify事件占用272字节
因此,假设一个设备有8192个watch,这些结构只会消耗320KB的内存。在同一时间最多允许存在8个设备,总共只需2.5MB的内存。
每个设备还可以同时排队256个事件,每个设备需要68KB的内存。如果所有设备都打开并且事件队列已满,则总共只需0.5MB的内存。
因此,在极少数情况下,即使所有内容都打开并且队列已满,也仅使用约3MB的内存。
每个inotify watch将目录/文件的inode固定在内存中,每个文件系统的inode大小不同,但我们假设为512字节。
因此,假设最大数量的全局watch处于活动状态,这将在inode缓存中固定32MB的inodes。对于现代系统来说,这也不是问题。
我当然是假设自从文章写出来以后情况没有发生太大变化,但是从数据来看,我不会担心,增加限制也不会显著增加内存消耗。
关于inotify
的相关帖子