zoukankan      html  css  js  c++  java
  • centos 7.x设置守护进程的文件数量限制

    在Bash中有个ulimit命令,提供了对Shell及该Shell启动的进程的可用资源控制。主要包括打开文件描述符数量、用户的最大进程数量、coredump文件的大小等。

    1. 系统级设置

    1.1 CentOS 5/6

    在CentOS 5/6等版本中,资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。
    当然,/etc/security/limits.d/
    中可以配置,系统是先加载limits.conf然后按照英文字母顺序加载limits.d目录下的配置文件,后加载配置覆盖之前的配置。 一个配置示例如下:

    soft nofile 100000
    hard nofile 100000
    soft nproc 100000
    hard nproc 100000
    soft core 100000
    hard core 100000

    1.2 CentOS 7/RHEL 7

    在CentOS 7/RHEL 7的系统中,使用Systemd替代了之前的SysV,因此/etc/security/limits.conf 文件的配置作用域缩小了一些。

    limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。登录用户的限制,与centos 5/6一样,通过/etc/security/limits.conf和
    limits.d来配置即可。

    2. systemd service的资源限制设置

    2.1 全局的配置

    配置位置有两个位置:/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。

    DefaultLimitCORE=infinity
    DefaultLimitNOFILE=100000
    DefaultLimitNPROC=100000

    注意:修改了system.conf后,需要重启系统才会生效

    2.2 单个service配置

    针对单个Service,也可以设置,以nginx为例。

    编辑/usr/lib/systemd/system/nginx.service文件,或者/usr/lib/systemd/system/nginx.service.d/my-limit.conf文件,做如下配置:

    [Service]
    LimitCORE=infinity
    LimitNOFILE=100000
    LimitNPROC=100000

    然后运行如下命令,才能生效。

    sudo systemctl daemon-reload
    sudo systemctl restart nginx.service
    查看一个进程的limit设置:cat /proc/YOUR-PID/limits
    
    例如我的一个nginx service的配置效果:
    $ cat /proc/$(cat /var/run/nginx.pid)/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 unlimited unlimited bytes
    Max resident set unlimited unlimited bytes
    Max processes 100000 100000 processes
    Max open files 100000 100000 files
    Max locked memory 65536 65536 bytes
    Max address space unlimited unlimited bytes
    Max file locks unlimited unlimited locks
    Max pending signals 1030606 1030606 signals
    Max msgqueue size 819200 819200 bytes
    Max nice priority 0 0
    Max realtime priority 0 0
    Max realtime timeout unlimited unlimited us

    顺便提一下,CentOS7自带的/etc/security/limits.d/20-nproc.conf,里面默认设置了非root用户的最大进程数为4096,被limit.d目录中的配置覆盖了。

    参考文档:

    man systemd

    man systemd-system.conf

  • 相关阅读:
    MySQL存储引擎MyISAM和InnoDB有哪些区别?
    python发起post请求获取json数据使用requests方法
    和 Python 2.x 说再见!项目移到python3
    php memcache 缓存与memcached 客户端的详细步骤
    Ubuntu16.04安装Nginx+PHP5.6+MySQL5.6
    element-ui select 下拉框 实现分页 通过css样式
    技术_pm发展历程
    前端_git用法
    前端_javascript本地实现分页(摘录)
    生活_人生感悟
  • 原文地址:https://www.cnblogs.com/lenmom/p/9993146.html
Copyright © 2011-2022 走看看