全部博文(150)
分类: LINUX
2017-04-21 19:07:36
centos7发布以后,关于open files的设置有所变化,最近运维中恰好遇到的打开文件数限制的问题,遂通过互联网进行了学习和了解,并将学习结果分享出来,希望能帮到其他同学,如果文中有疏漏和错误,欢迎大家批评指正。
1、系统编译时默认设置文件(centos7新增)
服务配置 /etc/systemd/system.conf
用户配置 /etc/systemd/user.conf
#DefaultLimitNOFILE=
2、PAM模块配置文件
EXAMPLES These are some example lines which might be specified in /etc/security/limits.conf. * soft core 0 * hard nofile 512 @student hard nproc 20 @faculty soft nproc 20 @faculty hard nproc 50 ftp hard nproc 0 @student - maxlogins 4 :123 hard cpu 5000 @500: soft cpu 10000 600:700 hard locks 10
第一列用户和组名:*表示通配所有用户;@表示组名;:表示uid或者gid; 第二列资源值类型:hard的值只能由root用户增加,其root权限用户和进程可以减少;soft的值,非root用户和进程可以修改; 第三列是资源类型:nofile为打开文件数,nproc为运行进程数,maxlogins为登录次数cpu、ram等等 第四列是资源数值:大于0的数值
# Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 4096 root soft nproc unlimited
3、profile配置文件
*4、验证非root权限用户不能增加hard值(以nofile为例) 如果ulimit运行在非root用户的shell下,只能修改比当前值小,大的会报错
[tomcat@localhost ~]$ ulimit -n 4096 [tomcat@localhost ~]$ ulimit -n 8192 -bash: ulimit: open files: cannot modify limit: Operation not permitted
系统优先级:/etc/systemd/system.conf 、user.conf
所谓系统优先级,即不受一二三优先级的影响,针对系统服务和用户服务的配置
假设系统内的apache需要设置打开文件为20000
mkdir -p /etc/systemd/system/httpd.service.d/
cat /etc/systemd/system/httpd.service.d/limits.conf [Service] LimitNOFILE=20000
systemctl daemon-reload
systemctl restart httpd