Linux 文件描述符相关参数配置

1.整个系统最大打开文件描述符数:/proc/sys/fs/file-max
$cat /proc/sys/fs/file-max
763983
临时性设置
$echo 6553500 > /proc/sys/fs/file-max
$sysctl -w fs.file-max=6553500
永久性设置:
$vim /etc/sysctl.conf
fs.file-max = 6553500
 
 
2.系统中单个进程最大打开文件描述符数:
$cat /proc/sys/fs/nr_open
1048576
临时性设置有两种方法如下:
$echo 102400 > /proc/sys/fs/nr_open
$sysctl -w fs.nr_open=102400
永久性设置:
$vim /etc/sysctl.conf
fs.nr_open = 102400
 
 
3.查看user limit中nofile的soft limit:
$ulimit -n            #ulimit -n默认查看的是soft limit
65535
$ulimit -Sn
65535
临时性设置,通过ulimit -Sn设置的是最大打开文件描述符数的soft limit,并且soft limit不能大于hard limit:
$ulimit -Sn 10240
$ulimit -n
10240
$ulimit -Sn
10240
查看user limit中nofile的hard limit:
$ulimit  -Hn
65535
临时性设置,通过ulimit -Hn设置的是最大打开文件描述符数的hard limit,对于非root用户只能设置比原来小的hard limit:
$ulimit -Hn 11111
$ulimit -Hn
11111
同时设置soft limit和hard limit:
$ulimit -n 1024
$ulimit -n
1024
$ulimit -Sn
1024
$ulimit -Hn
1024
永久性设置:上面的方法只是临时性的,用户注销之后就会失效,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行内容,表示用户skuser最大打开文件描述符数的soft  limit为20480,hard limit为40960。以下设置需要注销之后重新登录才能生效:
$vim /etc/security/limits.conf
skuser           soft    nofile          20480
skuser           hard    nofile          40960
如果要为所有用户进行配置,可以进行如下配置:
$vim /etc/security/limits.conf
*           soft    nofile          20480
*           hard    nofile          40960
一般企业中会让root用户和普通用户分开,参考配置如下:
$tail -4 /etc/security/limits.conf
root     soft     nofile     65535
root     hard     nofile     65535
*     soft     nofile     20480
*     hard     nofile     40960
设置nofile的hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后将无法正常登录:
$cat /proc/sys/fs/nr_open
1048576
可以修改nr_open的值:
$echo 2048000 > /proc/sys/fs/nr_open
 
 
4.查看当前系统已打开的文件描述符数:
$cat /proc/sys/fs/file-nr
2144    0    763983
第一个数表示当前系统已分配使用的文件描述符数
第二个数为分配后已释放的,即目前已不再使用
第三个数等于file-max
 
 
5.总结:
系统所有进程打开的文件描述符数总和不能超过/proc/sys/fs/file-max
系统中单个进程打开的文件描述符数不能超过/proc/sys/fs/nr_open
每个用户的单个用户进程打开的文件描述符数不能超过user limit中nofile的soft limit
每个用户的soft limit不能超过其hard limit
每个用户的hard limit不能超过/proc/sys/fs/nr_open
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/juchangfei/p/12807595.html