Raf*_*del 48 linux file-descriptors ulimit
我正在尝试安装389-ds,它给了我这个警告:
WARNING: There are only 1024 file descriptors (hard limit) available, which limit the number of simultaneous connections.
Run Code Online (Sandbox Code Playgroud)
我了解文件描述符,但我不了解软限制和硬限制。
当我跑cat /proc/sys/fs/file-max,我回来590432。这应该意味着我最多可以打开 590432 个文件(即最多有 590432 个文件描述符。
但是当我运行时ulimit,它给了我不同的结果:
$ ulimit
unlimited
$ ulimit -Hn # Hard limit
4096
$ ulimit -Sn # Soft limit
1024
Run Code Online (Sandbox Code Playgroud)
但是硬/软限制来自ulimit什么,它们与存储在的数字有什么关系/proc/sys/fs/file-max?
Ale*_*ios 47
根据内核文档,/proc/sys/fs/file-max是内核在阻塞之前将分配的文件描述符的最大、总、全局数量。这是内核的限制,而不是您当前用户的限制。所以你可以打开 590432,只要你一个人在空闲系统上(单用户模式,没有守护进程运行)。
请注意,文档已过时:该文件已存在/proc/sys/fs/file-max很长时间。感谢 Martin Jambon 指出这一点。
软限制和硬限制之间的区别在 SE 上回答。您可以作为普通用户提高或降低软限制,前提是您不超过硬限制。您还可以降低硬限制(但您不能为该过程再次提高它)。作为超级用户,您可以提高和降低硬限制和软限制。双限制方案用于强制执行系统策略,但也允许普通用户为自己设置临时限制并在以后更改它们。
请注意,如果您尝试将硬限制降低到软限制以下(并且您不是超级用户),您将EINVAL返回(无效参数)。
因此,在您的特定情况下,ulimit(与 相同ulimit -Sf)表示您对 shell 及其子进程写入的文件大小没有软限制。(在大多数情况下这可能是个好主意)
您的其他调用,ulimit -Hn在报告-n限值(打开的文件描述符的最大数量),没有的-f限制,这就是为什么软限制似乎比硬限制高。如果您输入,ulimit -Hf您还将获得unlimited.
| 归档时间: |
|
| 查看次数: |
128734 次 |
| 最近记录: |