设为首页 收藏本站
查看: 561|回复: 0

[经验分享] CentOS7 systemd的坑

[复制链接]

尚未签到

发表于 2018-4-20 07:12:35 | 显示全部楼层 |阅读模式
原文出处:https://www.cnblogs.com/chris-cp/p/6667753.html
一、概述
  在从 CentOS 6 迁移到 CentOS 7 的过程中,可能有一些地方需要调整,最显著的地方莫过于 systemd 带来的改变,不同的管理服务的方式,不同的日志方式,设置时区,时间等等。 当然,除了这些显而易见的改变之外,有些变化并不是那么引人注目,例如这里要介绍的你可能发现曾经配置了正确的 /etc/security/limits.conf 在 CentOS 7 中却没有生效了。
  如果遇到上面的问题,很可能已经导致了你的应用异常了,例如:以前配置了服务的 nproc 为一个非常大的数值, 结果现在发现服务不能打开更多的文件。
  惊讶之余,查看服务的 /proc/<pid>/limits 却发现:
1 Max open files            1024                1024                files  那么,为什么服务使用 systemd 启动就没有生效呢?
  根据 redhat bugzilla 754285, systemd 实际上是会忽略 /etc/security/limits.conf,下面是 systemd 2 号人物的回答:

  而这个 bug 也标记为已解决,在 pam 包中解决,这个包包含了 /etc/security/limits.conf, 在这个文件中加入了如下注释:
# /etc/security/limits.conf  
#
  
#This file sets the resource limits for the users logged in via PAM.
  
#It does not affect resource limits of the system services.
  
#
  注意,这里的 system services 指的是 system wide service,对于 CentOS 7 来说也就是系统的 service。
  systemd 还可以对普通用户启动,使用 --user 参数。
二、解决之道
  在CentOS 7 / RHEL 7的系统中,使用Systemd替代了之前的SysV,因此 /etc/security/limits.conf 文件的配置作用域缩小了一些。limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。登录用户的限制,与上面讲的一样,通过 /etc/security/limits.conf 和 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用户实例使用的。一般的sevice,使用system.conf中的配置即可。systemd.conf.d/*.conf中配置会覆盖system.conf。
1 DefaultLimitCORE=infinity2 DefaultLimitNOFILE=1000003 DefaultLimitNPROC=100000  然后运行如下命令,才能生效。
1 sudo systemctl daemon-reload2 sudo systemctl restart nginx.service  查看一个进程的limit设置:cat /proc/YOUR-PID/limits
  例如我的一个nginx service的配置效果:

1 $cat /proc/$(cat /var/run/nginx.pid)/limits 2 Limit                     Soft Limit           Hard Limit           Units 3 Max cpu time              unlimited            unlimited            seconds 4 Max file size             unlimited            unlimited            bytes 5 Max data size             unlimited            unlimited            bytes 6 Max stack size            8388608              unlimited            bytes 7 Max core file size        unlimited            unlimited            bytes 8 Max resident set          unlimited            unlimited            bytes 9 Max processes             100000               100000               processes10 Max open files            100000               100000               files11 Max locked memory         65536                65536                bytes12 Max address space         unlimited            unlimited            bytes13 Max file locks            unlimited            unlimited            locks14 Max pending signals       1030606              1030606              signals15 Max msgqueue size         819200               819200               bytes16 Max nice priority         0                    017 Max realtime priority     0                    018 Max realtime timeout      unlimited            unlimited            us

  顺便提一下,我还被CentOS7自带的/etc/security/limits.d/20-nproc.conf文件坑过,里面默认设置了非root用户的最大进程数为4096,难怪我上次在limits.conf中设置了没啥效果,原来被limit.d目录中的配置覆盖了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449325-1-1.html 上篇帖子: Centos6.9 yum安装htop报错解决过程 下篇帖子: CentOS 6.5 搭建Hadoop 2.5.2集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表