参考博文:
 
问题简述:Centos7下修改系统的最大文件打开数的时候,对系统启动的进程不生效
 
问题详述:Centos7下需修改系统最大文件打开数为100000,进程数为50000,于是做了如下操作
 
说       明:此问题只出现在centos7下,centos6版本不存在此问题
 
1:记录未修改之前的ulimit值
 
 
 
2:修改配置文件
  
vim  /etc/security/limits.conf   在后面添加
*      soft    nofile
* hard nofile
* soft nproc
* hard nproc
重启机器,修改 /etc/security/limits.conf 里的配置后,需重启机器才能生效
      
 
3:查看修改后的ulimit值
 
 
  
4:在这里看起来一切都很正常,也许一不小心就入坑了。为了对比现象,需要安装两个nginx,一个源码安装,一个yum安装
      
源码安装:(简单安装,只是为了验证和测试,不指定安装路径,默认是在/usr/local/nginx下)     
wget http://nginx.org/download/nginx-1.8.1.tar.gz
tar -zxvf nginx-1.8..tar.gz
cd nginx-1.8.
./configure
make && make install
yum安装
yum -y install nginx
5:现象
 
1)先启动源码编译的nginx,并查看进程号及limit值,如下
 
启动nginx:   /usr/local/nginx/sbin/nginx
查看进程:     ps -ef |grep nginx
查看某个进程的limit值: cat /proc/进程号/limits
     
 
 
2)yum安装nginx启动
 
启动方法:systemctl start nginx.service ,然后查看进程号及其limit值,如下:
             
 
 

到这里问题就来了,为什么通过systemctl启动的nginx对limit的设置不生效 ?????

然后查看了1号进程的limit值( cat /proc/1/limits ),发现也是对修改/etc/security/limits.conf文件里的最大文件打开数和最大进程数没有生效
 
6:原因
 
仔细查看/etc/security/limits.conf文件的注释,说明了对系统服务不生效
 
 
7:解决办法
 
在Centos7系统中,使用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=
DefaultLimitNPROC=
重启后,systemctl start nginx启动,然后根号进程号查看资源限制,得到
 
 
8:用到的相关命令

    
1)查看当前进程的最大可以打开的文件数
 
     cat /proc/进程ID/limits
 
2)查看当前进程实时打开的文件数
 
     lsof -p PID |wc -l
 
3)查看系统总限制打开文件的最大数量
 
     cat /proc/sys/fs/file-max
 
注:若设置不生效,查看包含的目录下的配置文件是否覆盖,如/etc/security/limits.d/下的文件是否覆盖了/etc/security/limits.conf设置的值 
 
 

systemd service 设置limit,不生效问题的更多相关文章

  1. CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制

    遇到的问题: golang程序一直出现 too many open files的报错, 尽管对 /etc/security/limits.conf 做了设置, 对最大文件打开数,最大进程数做了调优. ...

  2. 【转】CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制

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

  3. systemd service

    Man page systemd.unit SYSTEMD.UNIT(5) systemd.unit SYSTEMD.UNIT(5) NAME systemd.unit - Unit configur ...

  4. systemd.service 中文手册

    版权声明 本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布. 无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失. 自由使用:任何人都可以自 ...

  5. Linux Simple Systemd Service Guide

    Simple Systemd Service Guide 主题 Systemd介绍 Systemd基本操作 怎样编写_service_.service文件 怎样部署service Systemd介绍 ...

  6. Centos7 服务 service 设置命令 systemctl 用法 (替代service 和 chkconfig)

    在Centos 中 systemctl  是设置系统服务的命令,即 service  ,   它融合之前service和chkconfig的功能于一体. 可以使用它永久性或只在当前会话中启用/禁用服务 ...

  7. 如何编写一个Systemd Service(转)

    转自 https://segmentfault.com/a/1190000014740871 0x01 什么是Systemd Service Systemd 服务是一种以 .service 结尾的单元 ...

  8. Systemd: Service File Examples

    大多数Linux发行版使用 systemd作为系统服务管理工具. systemctl是systemd的主要命令,用于管理控制服务. 这篇文章中将介绍如何创建允许你使用systemctl命令的sysyt ...

  9. RHEL/CentOS 7中Nginx的systemd service

    源码安装的nginx ,没有systemd service 管理 nginx 下面教程,告诉你如何设置nginx 的systemd service nginx systemd的服务文件是/usr/li ...

随机推荐

  1. Probability和Likelihood的区别

    Bayes for Beginners: Probability and Likelihood 好好看,非常有用. 以前死活都不理解Probability和Likelihood的区别,为什么这两个东西 ...

  2. 为什么会出现container/injection的思想?

    1.容器的历史 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的 ...

  3. android ------ RecyclerView 模仿淘宝购物车

    电商项目中常常有购物车这个功能,做个很多项目了,都有不同的界面,选了一个来讲一下. RecyclerView 模仿淘宝购物车功能(删除选择商品,商品计算,选择, 全选反选,商品数量加减等) 看看效果图 ...

  4. 最全面的移动APP测试点

    随着互联网,大数据时代的不断推进,演化.移动开发领域得到普遍普及,APP开发如潮水般涌现.下面我将详细介绍app的测试点: 首先我们先熟悉app测试基本流程: 1.1流程图 1.2测试周期 测试周期可 ...

  5. Luffy之结算订单页面(订单模型表的创建,订单的生成,以及订单详情展示等)

    订单页面 在前面我们已经构建了,购物车的页面,接下来到了结算页面 1.首先,在购物车页面点击去结算按钮时,我们需要做如下动作 .前端发送生成订单的请求,点击标签内触发事件 create_order t ...

  6. 『TensorFlow』分类问题与两种交叉熵

    关于categorical cross entropy 和 binary cross entropy的比较,差异一般体现在不同的分类(二分类.多分类等)任务目标,可以参考文章keras中两种交叉熵损失 ...

  7. mysql以zip安装,解决the service already exists

    mysql以zip安装, mysqld -install 报错:​The service already exists ​ 原因是之前安装了以后卸载了,服务没删掉. 解决方法:​ sc query m ...

  8. 【lintcode13】字符串查找

    问题: 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始).如果不存在,则返回 -1. 样例:如果 ...

  9. java虚拟机之虚拟机类加载机制

    此处主要需要知道什么是java虚拟机?java虚拟机如何进行类加载的? java语言本身是编译型和解释型的语言,先对本地的java文件进行编译,编译后会在本地生成一个class文件,而这个生成的cla ...

  10. 注册Activity

    <activity android:name=".类名"                               android:label="@string/ ...