centos7 修改进程最大文件数

本文探讨了在CentOS7中遇到进程打开文件数限制的问题,通过`ulimit -n`查看到的限制与实际运行的程序限制不符。通过分析`/proc/<pid>/limits`发现系统层面的配置并未对服务生效。问题在于`/etc/security/limits.conf`的配置仅适用于通过PAM认证的登录用户,而非systemd服务。为了解决这个问题,文章提出了两种解决方案:1) 在对应的服务`.service`文件中直接添加资源限制;2) 修改`/etc/systemd/system.conf`或`/etc/systemd/user.conf`来设置系统或用户实例的资源限制。
摘要由CSDN通过智能技术生成

做项目时发现一个问题,通过ulimit -n查看系统限制的单个进程最大句柄数是65535,但是在自己的程序中发现远远达不到这个限制就已经报错了:too many open files。到底是因为一瞬间程序本身确实用掉了这么大的句柄,还是有其他什么原因呢?

解决问题前,先学习了一个查看指定进程资源限制的命令:cat /proc/<pid>/limits

可以发现,系统层面的控制对我的进程来说并不生效。

在我的环境中,是通过 /etc/security/limits.conf中添加了以下两行:

为什么不生效呢? 仔细看limits.conf这个文件的开头:

 

发现了吧?limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。而我的程序正好封装成service了!!

对于systemd service的资源限制,如何配置呢?

有两种方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值