如何调整inotify以减少使用内存?

时间:2010-12-30 11:08:40

标签: linux embedded

我正在开发嵌入式Linux系统。

我尝试使用inotify来监控更改。但是,当我试图监视大量文件夹(比如超过6000个文件夹)时,inotify使用了大量内存(大约25-30MB)。众所周知,嵌入式系统中25-30MB被认为很大......

我的问题是;

  • 这是正常的吗?
  • 有谁知道如何调整这个?
  • 监控大量文件夹而不在每个文件夹中添加监视的任何替代方法?

3 个答案:

答案 0 :(得分:2)

据我所知,使用未修补的Linux内核无法进行递归监视。另见https://superuser.com/questions/118642/recursive-filesystem-notifications-inotify-for-ubuntu-karmic-koala。也许 fanotify 会对你有用,但它需要一个内核补丁。

答案 1 :(得分:0)

使用Auditd

还有一个名为loggedfs的用户空间文件系统,但我无法使用它。

答案 2 :(得分:0)

使用inotify时,递归监控目录是不可避免的 参考:
http://en.wikipedia.org/wiki/Inotify#Limitations

为了提高inotify(7)性能(可能减少内存使用量),我的建议是:
每当您开始观看目录时,只需关注您感兴趣的inotify_event类型(尽可能少),您可以调整mask函数的inotify_add_watch(2)参数来实现此目的。将mask参数值设置为IN_ALL_EVENTS以监控inotify_event的所有类型有时是不必要的。

希望这会有所帮助。