【问题标题】:On Linux - set maximum open files to unlimited. Possible?在 Linux 上 - 将最大打开文件数设置为无限制。可能的?
【发布时间】:2016-07-05 19:32:28
【问题描述】:

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

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

如果我不能使用 'max' 或类似名称,我想知道如何确定文件的最大数量(理论上),所以我选择的任何数量都有一些基础。如果有更合理的方法来获得上限,我不想使用 100000000 或其他东西。

如果重要的话,我正在使用 RHEL 5。

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


感谢 cmets。这是针对 JBOSS 实例而不是我正在编写的守护进程,所以我不知道 setrlimit() 是否对我有用。但是,Jefromi - 我确实喜欢 Infinity 的定义 :) 我看到一篇文章建议文件描述符是“两个短裤和一个指针”,所以我应该能够计算出近似的上限。

【问题讨论】:

    标签: linux kernel redhat


    【解决方案1】:

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

    更新: RHEL 5 对此限制的最大值为 1048576 (220)(NR_OPEN in /usr/include/linux/fs.h),并且不会接受任何更大的包括无穷大的值,即使对于根也是如此。因此,在 RHEL 5 上,您可以在 /etc/security/limits.conf 中使用该值,这与您将要达到的无穷大一样接近。

    不久前a Linux kernel patch 被应用以允许将此限制设置为无穷大,然而it has since been reverted as a result of unintended consequences。

    【讨论】:

    • 2015 年最近有什么变化吗?
    • 可能有用:Ubuntu 14.04 在/etc/security/limits.conf 中也有这个 2^20 的限制。超过此限制的任何内容都会将限制重置为默认的 2^10
    • You can get beyond 2^20 by setting fs.nr_open,至少在 Centos 7 中。
    【解决方案2】:

    试一试

    <domain>    -
    

    用用户名替换&lt;domain&gt;,在最简单的情况下。

    limits.conf man page 说

    -
        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. .
    

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 2016-08-21
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2015-03-07
      • 2015-06-03
      相关资源
      最近更新 更多