linux 文件描述符最大是多少?怎么计算的?

linux 文件描述符最大是多少?怎么计算的?,第1张

最大值是系统相关的,linux shell 输入如下命令就知道,其中的“-n: file descriptors”就是最大限制值。

# ulimit -a

-f: file size (blocks) unlimited

-t: cpu time (seconds) unlimited

-d: data seg size (kb) unlimited

-s: stack size (kb)8192

-c: core file size (blocks)0

-m: resident set size (kb) unlimited

-l: locked memory (kb) 64

-p: processes 128

-n: file descriptors 1024

-v: address space (kb) unlimited

-w: locks unlimited

-e: scheduling priority0

-r: real-time priority 0

ubuntuserver修改文件描述符最大限制是1024。1024是文件的二进制,修改文件要按照1024的标准。二进制数据是用0和1两个数码来表示的数。而2的10次恰好等于1024,所以为了方便就用了1024进制。

进程最大打开文件描述符数:user limit中nofile的soft limit

a.查看

$ ulimit -n

1700000

2. 设置

a.临时性:通过ulimit -Sn设置最大打开文件描述符数的soft limit,注意soft limit不能大于hard limit(ulimit -Hn可查看hard limit),另外ulimit -n默认查看的是soft limit,但是ulimit -n 1800000则是同时设置soft limit和hard limit。对于非root用户只能设置比原来小的hard limit。

查看hard limit:

$ ulimit -Hn

1700000

设置soft limit,必须小于hard limit:

$ ulimit -Sn 1600000

2.永久性:上面的方法只是临时性的,注销重新登录就失效了,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行,表示用户chanon最大打开文件描述符数的soft limit为1800000,hard limit为2000000。以下设置需要注销之后重新登录才能生效:

chanon softnofile 1800000

chanon hard nofile 2000000

设置nofile的hard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后无法正常登录。可以修改nr_open的值:

# echo 2000000 >/proc/sys/fs/nr_open


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11949773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存