linux 设置打开文件数

可以使用下面的文件进行设置

/etc/security/limits.d/90-nproc.conf

先来看/etc/security/limits.d/90-nproc.conf 配置文件:

**[root@ ~]# cat /etc/security/limits.d/90-nproc.conf

Default limit for number of user's processes to prevent

accidental fork bombs.

See rhbz #432903 for reasoning.**

* soft nproc 1024
root soft nproc unlimited
系统其它普通用户最多进程默认是1024个,而root用户是 unlimited(不受限制)

/etc/security/limits.conf 配置文件可限制文件打开数,系统进程等资源,在该文件配置中写的最大用户进程数是受/etc/security/limits.d/90-nproc.conf配置上限影响的。

一般系统普通用户进程数满了都是修改/etc/security/limits.d/90-nproc.conf文件。

为什么要限制打开文件的数量?

因为操作系统需要内存来管理每个文件,所以可以打开的文件数可能会受到限制。由于程序也可以关闭文件处理程序,它可以创建任意大小的文件,直到所有可用磁盘空间都已满为止。在这种情况下,安全性的一个方面是通过施加限制来防止资源耗尽。

可以看到Linux系统中打开的文件描述符的最大数量,如下所示:

root@localhost \~\]# cat /proc/sys/fs/file-max 180965 一般我们也是可以修改 /etc/security/limits.conf 文件 \[root@localhost \~\]# vim /etc/security/limits.conf \* hard nofile 20000 \* soft nofile 15000 之后,需要编辑文件/etc/pam.d/login配置文件,在最后添加以下一条内容: [root@localhost ~]# vim /etc/pam.d/login session required pam_limits.so ![](https://file.jishuzhan.net/article/1703781293407342593/769f37d736ef45d9b9a80a150a6525d7.png) 保存文件。然后退出登录,或者重启系统。可以看到软限制和硬限制的值都修改成功了: [root@localhost ~]# ulimit -Sn 15000 [root@localhost ~]# ulimit -Hn 20000 **方法三:** 查看系统最大打开文件描述符数量: [root@localhost ~]# cat /proc/sys/fs/file-max 180965 临时设置该值: [root@localhost ~]# echo "1000000" > /proc/sys/fs/file-max ![](https://file.jishuzhan.net/article/1703781293407342593/02bfe25baeac45cba6ed0744aad6e028.png) 永久性设置,需要在`/etc/sysctl.conf`中设置,并让它生效: [root@localhost ~]# echo "fs.file-max = 1000000" >> /etc/sysctl.conf [root@localhost ~]# sysctl -p fs.file-max = 1000000 **总结** 所有进程打开的文件描述符数量不能超过/proc/sys/fs/file-max。 单个进程打开的文件描述符数不能超过user limit中nofile的soft limit。 nofile的soft limit不能超过其hard limit。 注意下面的提示: 修改/etc/security/limits.conf也可以达到目的,但是需要注意两个问题: 1.在配置文件中需要指明用户,如不指明,会有可能导致配置不生效(当两个配置文件都在生效时)。 2.书写有格式要求,\* soft nproc 20480中间需要至少2个空格隔开。 注意:如果两个配置文件中都做了限制,以/etc/security/limits.d/90-nproc.conf中最小值为准

相关推荐
岳来3 分钟前
docker network 创建 host 和 none 网络模式
网络·docker·容器·docker network
薛定谔的悦14 分钟前
BMS Modbus RTU实现:从帧结构到寄存器映射的完整工程
linux·数据库·bms
cui_ruicheng14 分钟前
Linux进程控制(下):实现简易 Shell 命令行解释器
linux·运维·服务器
线束线缆组件品替网18 分钟前
Amphenol CAT6A网线RJE1Y36915162401线束组件深度解析
网络·数码相机·智能路由器·电脑·电视盒子·pcb工艺
Smile_25422041822 分钟前
clickhouse日志疯涨问题
linux·运维·服务器·clickhouse
2301_旺仔24 分钟前
【Nginx进程管理】
linux·服务器·网络
SPC的存折30 分钟前
(自用)LNMP-Redis-Discuz5.0部署指南-openEuler24.03-测试环境
linux·运维·服务器·数据库·redis·缓存
二等饼干~za89866832 分钟前
云罗 GEO 优化系统源码厂家测评报告
大数据·网络·数据库·人工智能·django
W.W.H.37 分钟前
嵌入式常见面试题——操作系统与RTOS篇
linux·经验分享·操作系统·rtos
云飞云共享云桌面42 分钟前
共享云主机告别传统电脑——制造工厂研发部门2台三维设计云主共享给20个设计师并发用
大数据·运维·服务器·自动化·电脑·制造