为什么linux限制文件描述符,linux – 限制文件描述符的数量

本文解析了Linux中文件描述符的软限制和硬限制的区别,以及它们与/proc/sys/fs/file-max的关系。重点介绍了如何理解ulimit命令显示的限制,并提供了解决不足的方法,包括理解内核限制和用户权限。
摘要由CSDN通过智能技术生成

我正在尝试安装389-ds,它给了我这个警告:

WARNING: There are only 1024 file descriptors (hard limit) available, which limit the number of simultaneous connections.

我理解文件描述符,但我不了解软和硬限制.

当我运行cat / proc / sys / fs / file-max时,我回到590432.这应该意味着我可以打开最多590432个文件(即最多有590432个文件描述符).

但是当我运行ulimit时,它会给我不同的结果:

$ulimit

unlimited

$ulimit -Hn # Hard limit

4096

$ulimit -Sn # Soft limit

1024

但ulimit的硬/软限制是什么,它们与/ proc / sys / fs / file-max中存储的数量有什么关系?

解决方法:

根据the kernel documentation,/ proc / sys / file-max是内核在阻塞之前将分配的最大,全局,全局文件描述符数.这是内核的限制,而不是您当前的用户.所以你可以打开590432,只要你在一个空闲系统上独自一人(单用户模式,没有运行守护进程).

请注意,文档已过期:文件已经过了很长时间的proc / sys / fs / file-max.感谢Martin Jambon指出这一点.

The difference between soft and hard limits is answered here, on SE.您可以作为普通用户提高或降低软限制,前提是您没有超出硬限制.您还可以降低硬限制(但不能再为此过程再次提高).作为超级用户,您可以提高和降低硬限制和软限制.双限制方案用于实施系统策略,但也允许普通用户为自己设置临时限制,然后更改它们.

请注意,如果您尝试将硬限制降低到软限制以下(并且您不是超级用户),则会返回EINVAL(无效参数).

因此,在您的特定情况下,ulimit(与ulimit -Sf相同)表示您对shell及其子进程写入的文件的大小没有软限制. (在大多数情况下,这可能是一个好主意)

您的其他调用,ulimit -Hn报告-n限制(最大打开文件描述符数),而不是-f限制,这就是软限制似乎高于硬限制的原因.如果你输入ulimit -Hf你也会得到’无限’.

标签:linux,ulimit,file-descriptors

来源: https://codeday.me/bug/20190808/1623723.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值