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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下