Man*_*har 4 linux inotify linux-kernel
在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,但到目前为止还没有.
文件描述符基于每个进程受限于完全不同的原因:当进程启动时,分配文件描述符表并且其大小与允许的最大文件描述符数成比例.保持尽可能小可以减少每进程内存开销.