Linux最大打开文件描述符数

1.    系统最大打开文件描述符数:/proc/sys/fs/file-maxide

a.    查看spa

$ cat /proc/sys/fs/file-maxorm

186405进程

2. 设置it

a.    临时性class

# echo 1000000 > /proc/sys/fs/file-max登录

2.    永久性:在/etc/sysctl.conf中设置file

fs.file-max = 1000000权限

 

2.    进程最大打开文件描述符数:user limitnofilesoft limit方法

a.    查看

$ ulimit -n

1700000

2. 设置

a.    临时性:经过ulimit -Sn设置最大打开文件描述符数的soft limit,注意soft limit不能大于hard limitulimit -Hn可查看hard limit),另外ulimit -n默认查看的是soft limit,可是ulimit -n 1800000则是同时设置soft limithard 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 limit1800000hard limit2000000。如下设置须要注销以后从新登陆才能生效:

chanon           soft    nofile          1800000

chanon           hard   nofile          2000000

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

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

 

3.    查看当前系统使用的打开文件描述符数

[root@localhost bin]# cat /proc/sys/fs/file-nr

5664        0        186405

其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已再也不使用),第三个数等于file-max

 

4.    总结:

a.    全部进程打开的文件描述符数不能超过/proc/sys/fs/file-max

b.    单个进程打开的文件描述符数不能超过user limitnofilesoft limit

c.    nofilesoft limit不能超过其hard limit

d.    nofilehard limit不能超过/proc/sys/fs/nr_open

相关文章
相关标签/搜索