是否可以将打开文件的最大数量设置为某个“无限”值或者它必须是一个数字?
我需要将守护进程用户的描述符限制设置为“无限制”,我正在尝试确定这是否可行或如何实现。我已经看到一些邮件列表提到了可以使用的“最大”值(如:“myuser hard nofile max”,但到目前为止,我查阅的手册页和引用资料并未支持这一点。
如果我不能使用“最大”或类似的,我想知道如何确定文件的最大数量(理论上),这样我就可以为我选择的任何数量提供一些依据。如果有更合理的方法来获得上限,我不想使用 100000000 或其他东西。
如果它很重要,我会使用 RHEL 5。
更新:在写问题时我是个白痴。理想情况下,我想在 limits.conf 文件中执行此操作(这是“max”的来源)。这会改变任何答案吗?
感谢您的评论。这是针对 JBOSS 实例而不是我正在编写的守护进程,所以我不知道 setrlimit() 是否对我有用。然而,Jefromi - 我确实喜欢 Infinity 的定义 :) 我看到一篇文章建议文件描述符是“两个短裤和一个指针”,所以我应该能够计算出近似的上限。
最佳答案
POSIX 允许您使用 setrlimit()
将 RLIMIT_NOFILE
资源限制设置为 RLIM_INFINITY
.这意味着系统不会强制执行此资源限制。当然,您仍然会受到实现(例如 MAXINT
)和任何其他资源限制(例如可用内存)的限制。
更新:对于此限制(/usr/中的
),并且不会接受任何更大的值,包括无穷大,即使对于 root 也是如此。因此,在 RHEL 5 上,您可以在 NR_OPEN
),RHEL 5 的最大值为 1048576 (220) include/linux/fs.h/etc/security/limits.conf
中使用此值,这与您将要达到的无限接近。
不久前a Linux kernel patch被应用以允许将此限制设置为无穷大,但是it has since been reverted as a result of unintended consequences .
关于linux - 在 Linux 上 - 将最大打开文件设置为无限制。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1212925/