我需要超过9990个timerfd_create为基于事件的应用程序生成的文件描述符,并获得一个EMFILE“太多的打开文件”。
所以我改编了通常的参数和限制:
sys.fs.file-max 为1000000,因此系统范围限制不应成为问题。 sys.fs.nr_open 是1048576所以我的相对较大的file-max值仍应被视为有效。 limits.conf中的每用户限制为1000000,这由 ulimit -n 确认,显示为1000000.
我错过了什么?
这是在iCore 7上运行在Windows XP上的VirtualBox内部的2.6.32-5-amd64内核上。
编辑:尴尬。我链接了一些代码,它将这个值的setrlimit设置为较低的值...所以我自己降低了每个进程的限制。偶然发现这个 - 可能暗示对其他人有用。
答案 0 :(得分:1)
如果您使用的是Linux,则可以找到名为ulimit的命令。有几个选项可能会对您有所帮助,例如:
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
因此,ulimit -u
将为您提供为特定用户运行无限制流程的能力