CentOS文件描述符

在生产上部署的Ocelot,,ESTABLISHED到达3000后会不间断出现内部服务器错误及too many file等类似字样错误,经排查,因最近进行了服务器迁移,导致部文件描述符部分没有进行配置,进行配置后,故障恢复。整理如下:

一、系统最大文件描述符

查看系统最大文件描述符
cat /proc/sys/fs/file-max
临时设置最大文件描述符
# echo 1000000 > /proc/sys/fs/file-max
永久性设置最大文件描述符
vim /etc/sysctl.conf
fs.file-max = 1000000

二、进程最大文件描述符

查看进程最大文件描述符
ulimit -n
查看进程最大文件描述符soft limit和hard limit
ulimit -Sn 
ulimit -Hn
临时设置最大文件描述符soft limit和hard limit
ulimit -n 63353
永久设置最大文件描述符soft limit和hard limit
vim /etc/security/limits.conf

*  soft   nofile  65535

*  hard   nofile  65535

#在C7系统,进程改用了systemd代替之前SysV进行服务管理,原先的/etc/security/limits.conf文件配置的作用域缩小,只适用于通过PAM认证登录用户的资源显示,对systemd的service资源限制不生效的。
#在CentOS7+里面,要进行全局的配置进程打开文件数量,需要修改/etc/systemd/system.conf 和 /etc/systemd/user.conf 这两个,当然,如果只是进程修改system.conf即可,里面有两个默认值调整一下:

vim /etc/systemd/system.conf

DefaultLimitNOFILE=65535

DefaultLimitNPROC=65535

三、查看当前系统描述符

查看当前系统描述符
cat /proc/sys/fs/file-nr

5664 0 186405

//其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。
查看进程ID号
pidof dotnet

总结

1、所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max

2、单个进程打开的文件描述符数不能超过user limit中nofile的soft limit

3、soft limit不能超过其hard limit

4、nofile的hard limit不能超过/proc/sys/fs/nr_open
posted @ 2021-05-12 10:01  littlewrong  阅读(682)  评论(0编辑  收藏  举报