关于limits生效的案例一两只
第一个问题
limits.conf的限制在/proc/pid/limits中未生效
# cat /proc/3606/limits Limit Soft Limit Hard Limit Units Max processes 31202 31202 processes Max open files 1024 4096 files
在Centos7 & ubuntu 系统中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作用域缩小了。
/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。因此登录用户的限制,通过/etc/security/limits.conf与/etc/security/limits.d下的文件设置即可。
对于systemd service的资源设置,则需修改全局配置,
全局配置文件放在/etc/systemd/system.conf和/etc/systemd/user.conf,
同时也会加载两个对应目录中的所有.conf文件/etc/systemd/system.conf.d/.conf和/etc/systemd/user.conf.d/.conf
system.conf是系统实例使用的,user.conf是用户实例使用的。
vim /etc/systemd/system.conf DefaultLimitNOFILE=100000 DefaultLimitNPROC=65535
修改并重启即可
# cat /proc/3613/limits Limit Soft Limit Hard Limit Units Max processes 65535 65535 processes Max open files 100000 100000 files
第二个问题
在服务里面设置LimitNOFILE=infinity为什么不是无穷大?
在服务里面设置LimitNOFILE=infinity 后,通过查看pid的limit发现openfile是65536 ,而不是无穷大
查看服务配置
[root@iZwz98aynkjcxvtra0f375Z ~]# cat /etc/systemd/system/multi-user.target.wants/docker.service |grep -vi "^#"|grep -vi "^$" [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com BindsTo=containerd.service After=network-online.target firewalld.service containerd.service Wants=network-online.target Requires=docker.socket [Service] Type=notify ExecStart=/usr/bin/dockerd -H fd:// ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity Delegate=yes KillMode=process [Install] WantedBy=multi-user.target
查看配置效果
# cat /proc/11019/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 31202 31202 processes Max open files 65536 65536 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 31202 31202 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
这个是systemd的bug,低于240的版本需要手动设置才可以生效
LimitNOFILE=102400
https://github.com/systemd/systemd/issues/6559
第三个问题
为什么openfile不能设置为unlimited
[root@iZwz98aynkjcxvtra0f375Z ~]# ulimit -n 65535 [root@iZwz98aynkjcxvtra0f375Z ~]# ulimit -n unlimited -bash: ulimit: open files: cannot modify limit: Operation not permitted
原因是 centos7里 openfile不能大于nr_open
[root@iZwz98aynkjcxvtra0f375Z ~]# cat /proc/sys/fs/nr_open 1048576 [root@iZwz98aynkjcxvtra0f375Z ~]# ulimit -n 1048577 -bash: ulimit: open files: cannot modify limit: Operation not permitted [root@iZwz98aynkjcxvtra0f375Z ~]# ulimit -n 1048576 [root@iZwz98aynkjcxvtra0f375Z ~]# ulimit -n 1048576
关于file-max nr_open file_nr的解释 可参考
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
外部文档
https://www.cnblogs.com/zengkefu/p/5635153.html
https://blog.csdn.net/google0802/article/details/52304776
http://blog.cloud.360.cn/post/tuning-your-system-for-high-concurrency.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一文带你了解云存储网关的计量项和计费项
云栖号快速入门:【点击查看更多云产品快速入门】不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作! 本文主要介绍云存储网关计费概况,包括计费项和计费方式,您可以通过本文了解云存储网关服务费用收取详情。 云存储网关资源的价格,请参见云存储网关产品定价。 计费项 云存储网关包括线上网关和线下网关,其计费项不相同。 线上网关线上网关根据网关规格和缓存类型进行计费。两种计费方式的计费项构成如下。 (1).按量付费:每小时网关计费=网关规格每小时价格+缓存容量(GB)x1GB/小时单价。(2).包年包月:包月/包年价格=网关规格包月/包年价格+缓存容量(GB)x 1GB包月/包年单价 线下网关线下网关由客户提供虚拟机和缓存资源,阿里云只收取网关软件许可证费用。 计费方式 云存储网关的计费方式分为按量付费和包年包月两种。 按量付费:按实际使用量*单价的方式计费,每小时统计前一小时的实际用量并从账户余额中扣除实际消费金额。例如,当前时间是9:30,结算的是8:00-9:00产生的费用。 包年包月:按照包年包月方式付费, 在计费周期内比按量付费有更大的优惠。 其他费用 在使用云存...
- 下一篇
node学习笔记-好程序员
index页面 用户名: 密码:
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器