在Linux上-将最大打开文件数设置为无限。可能的

在Linux上-将最大打开文件数设置为无限。可能的,linux,kernel,redhat,Linux,Kernel,Redhat,是否可以将打开文件的最大数量设置为某个“无限”值,或者它必须是一个数字 我曾要求将守护程序用户的描述符限制设置为“无限”,我正在尝试确定这是否可行或如何实现。我看到一些邮件列表引用了一个可以使用的“max”值(如:“myuser hard nofile max”),但到目前为止,我参考的手册页和参考资料都没有支持这一点 如果我不能使用“max”或类似值,我想知道如何确定文件的最大数量(理论上),这样我就有了选择任何数量的依据。如果有更合理的方法获得上限,我不想使用100000000或其他什么 如

是否可以将打开文件的最大数量设置为某个“无限”值,或者它必须是一个数字

我曾要求将守护程序用户的描述符限制设置为“无限”,我正在尝试确定这是否可行或如何实现。我看到一些邮件列表引用了一个可以使用的“max”值(如:“myuser hard nofile max”),但到目前为止,我参考的手册页和参考资料都没有支持这一点

如果我不能使用“max”或类似值,我想知道如何确定文件的最大数量(理论上),这样我就有了选择任何数量的依据。如果有更合理的方法获得上限,我不想使用100000000或其他什么

如果重要的话,我会用RHEL 5

更新:在写问题时,我是个白痴。理想情况下,我希望在limits.conf文件中(这是“max”的来源)这样做。这会改变任何答案吗



谢谢你的评论。这是一个JBOSS实例,而不是我正在编写的守护进程,所以我不知道setrlimit()是否对我有用。然而,Jefromi-我确实喜欢无穷大的定义:)我看到一篇帖子,建议文件描述符是“两个短字符和一个指针”因此,我应该能够计算近似上限。

POSIX允许您使用将
RLIMIT_NOFILE
资源限制设置为
RLIM_无穷大。这意味着系统不会强制执行此资源限制。当然,您仍然会受到实现(例如
MAXINT
)和任何其他资源限制(例如可用内存)的限制

更新:RHEL 5的最大值为1048576(220)(在
/usr/include/linux/fs.h
中的
NR\u OPEN
),并且不接受任何较大的值,包括无穷大,即使是根。因此,在RHEL 5中,您可以在
/etc/security/limits.conf
中使用该值,这是您将要达到的最大值

不过,不久前应用了一种方法,允许将此限制设置为无穷大。

试试这一行

<domain>    -

截至2015年,最近有什么变化吗?可能有用:Ubuntu 14.04在
/etc/security/limits.conf
中也有这2^20个限制。任何超过该值的值都会将限制重置为默认值2^10,至少在Centos 7中是这样。
-
    for enforcing both soft and hard resource limits together.

    Note, if you specify a type of '-' but neglect to supply the
    item and value fields then the module will never enforce any
    limits on the specified user/group etc. .