加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – inotify FD – 为什么每个用户ID的限制而不是每个进程

发布时间:2020-12-14 01:22:31 所属栏目:Linux 来源:网络整理
导读:在 Linux中,限制进程可以打开的inotify实例的数量受每个用户ID最大数量的限制,在/ proc / sys / fs / inotify / max_user_instances中指定 自然就是限制每个进程,例如文件FD.由于inotify FD受用户ID的限制,因此它更有可能达到许多进程可能以相同用户ID运行的
在 Linux中,限制进程可以打开的inotify实例的数量受每个用户ID最大数量的限制,在/ proc / sys / fs / inotify / max_user_instances中指定

自然就是限制每个进程,例如文件FD.由于inotify FD受用户ID的限制,因此它更有可能达到许多进程可能以相同用户ID运行的服务器上的限制.但我想这有理由吗?

这是一个编程问题,因为我必须在我的代码中使用inotify,并希望为系统设置正确的限制.

解决方法

原因是防止非root用户使用inotify观看大量文件来执行系统操作. inotify结构需要不可忽略的内存来维护(并且它不能被交换到磁盘),因此需要对非特权提交的数量进行一些限制.

epoll曾经有类似的限制(max_user_instances和max_user_watches),尽管最后删除了max_user_instances并且max_user_watches只是设置为内存的4%.

应该提交类似的补丁用于inotify,但到目前为止还没有.

文件描述符基于每个进程受限于完全不同的原因:当进程启动时,分配文件描述符表并且其大小与允许的最大文件描述符数成比例.保持尽可能小可以减少每进程内存开销.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读