这是的输出ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
这是一个 64 位安装,我想将最大打开文件从 1024 增加到更令人兴奋的限制,例如 5000。这有什么问题吗?会不会造成不稳定?
谢谢。
max-open 是一个用户可以在单个会话中同时保持打开的文件数。
(来自 man limits.conf(5))
最大数量的安全值实际上取决于您的使用情况。具有默认值的要点是防止琐碎的(意外)拒绝服务。打开文件的数量也有全局限制:
例如,您可以通过运行来更改该数字
(显然,使用 root 用户)。更好的是在重新启动后添加行
fs.file-max = 10000
以/etc/sysctl.conf
加载相同的设置。从 ulimit 开始:增加这个数字是安全的。但是,打开文件的数量不应超过 global file-max,因为这样就无法再打开新文件(例如登录需要打开文件)。
如果有多个用户,请记住,如果您更改默认值,则每个人都可以打开更多文件。例如 30 个用户 * 5000 个文件 = 150 000 个打开的文件(假设每个人都打开最大数量的文件,并且只使用一个会话)。如果您有一些供多个用户使用的非常耗资源(例如打开很多文件)的软件,则可能是个问题。