timerfd_create产生太多打开文件错误

时间:2012-01-21 18:26:15

标签: timer linux-kernel epoll

我需要超过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设置为较低的值...所以我自己降低了每个进程的限制。偶然发现这个 - 可能暗示对其他人有用。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Linux,则可以找到名为ulimit的命令。有几个选项可能会对您有所帮助,例如:

max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

因此,ulimit -u将为您提供为特定用户运行无限制流程的能力