转自 http://smilejay.com/2016/06/centos-7-systemd-conf-limits/

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

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

1
2
3
4
5
6

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

不过,在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
2
3

DefaultLimitCORE=infinity
DefaultLimitNOFILE=100000
DefaultLimitNPROC=100000

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

针对单个Service,也可以设置,以nginx为例。
编辑 /usr/lib/systemd/system/nginx.service 文件,或者 /usr/lib/systemd/system/nginx.service.d/my-limit.conf 文件,做如下配置:

1
2
3
4

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

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

1
2

sudo systemctl daemon-reload
sudo systemctl restart nginx.service

查看一个进程的limit设置:cat /proc/YOUR-PID/limits
例如我的一个nginx service的配置效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

$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,难怪我上次在limits.conf中设置了没啥效果,原来被limit.d目录中的配置覆盖了。

参考文档:
man systemd
man systemd-system.conf
man bash 搜索一下ulimit

CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制相关推荐

  1. linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 在bash中,有个ulimit命令,提供了对shell及该shell启动的进程的可用资源控制.主要包括打开文档描述符数量 ...

  2. anydesk linux安装_在CentOS 8/RHEL 8系统中安装AnyDesk的方法

    本文介绍如何在CentOS 8/RHEL 8 Linux Desktop操作系统中安装AnyDesk,所安装的版本是Anydesk 5.1.2.我们将使用预打包的RPM软件包从AnyDesk Yum存 ...

  3. 如何在统信UOS系统中设置tomcat开机启动

    如何在统信UOS系统中设置tomcat开机启动 欢迎使用Markdown编辑器 1.创建服务 2. 创建软链接 3. 刷新配置 4. 启动.重启.停止 5. 开机自启动 6. 查看状态 欢迎使用Mar ...

  4. 如何在linux系统中设置定时任务?

    1. 引入 1.1 在日常开发中,我们经常需要设置一些定时任务. 举个栗子:在进行Java Web开发时,通常我们采用Springboot 框架,我们可以通过 注解+ cron表达式,设置定时任务. ...

  5. SuperMap iServer在不同系统中设置开机自启动--Windows篇

    目录 前言 1.删除已有的 SuperMap iServer 系统服务 2.注册 SuperMap iServer 系统服务 3.设置 SuperMap iServer 系统服务开机自启动 实例 作者 ...

  6. Ice-3.5.1在CentOS 6.5系统中的编译配置教程

    Ice-3.5.1在CentOS 6.5系统中的编译配置教程 1 操作系统 CentOS release 6.5 (Final)  x86_64 系统. 2 源码包下载 Ice-3.5.1.zip 下 ...

  7. 电脑小米路由器设置虚拟服务器,小米路由器在Win7系统中设置网络映射教程

    小米路由器怎么在Win7系统中设置网络映射?小米路由器,自带有一个文件存储芯片,用于存储用户使用小米路由器下载的各类文件(包括电影.音乐等文件),如果需要在计算机中看到小米路由器的文件夹,则需要将小米 ...

  8. 联想电脑计算机怎么设置十进制,如何在win10系统中设置电池充电阈值

    在使用win10系统的过程中,我们经常需要为win10系统设置电池充电阈值设置方法. 我一定遇到了需要为win10系统设置电池充电阈值的情况,那么应该如何设置win10?该系统设置电池充电阈值的操作方 ...

  9. Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了

    Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了 想让MacBook触摸板和非原生的鼠标滚轮方向一致可以使用第三方应用Scroll Reverser 来解决. Scroll R ...

最新文章

  1. java 视频 缩略图_Java截取视频文件缩略图
  2. 不要为框架作过多的假设
  3. 技术点不亲身实验一遍,难免会被网文唬
  4. 用python的五种方式_Python加载数据的5种不同方式(收藏)
  5. 苹果电脑基本设置+Linux 命令+Android 实战集锦
  6. 简单教你React父子组件间平级组件间传值
  7. 基本系统设备感叹号_win7系统网络图标显示感叹号的问题
  8. 用Way.EntityDB进行Entity Framework Core数据库建模
  9. linux stress 工具,Linux压力测试工具stress的参数详解
  10. 3v stm32 供电 晶振起振_晶振起振_单片机晶振不起振原因及解决方法
  11. 关闭windows端口的批处理命令
  12. 【NeoVim Coc.nvim】禁用从文档内提取字段的补全选项(禁用带有“yank”的补全选项)
  13. 北京航空航天大学计算机学院保研率,北京航空航天大学计算机学院(专业学位)计算机技术保研夏令营...
  14. 世界互联网大会上有哪些黑客科技值得关注?
  15. cuda的tip: nvcc的-arch,-code选项
  16. android系统文件误删,误删手机系统文件怎么恢复
  17. php中::双冒号作用
  18. 告别windows、拥抱linux,ThinkPad E485安装XUbuntu实录
  19. 汉字验证码、英文数字验证码字符集
  20. Object detection from video tubelets with CNN翻译

热门文章

  1. MySQL设计一个图书馆数据库_请设计一个图书馆数据库
  2. php调用selenium,从php调用python selenium
  3. linux 快捷matlab_Linux命令 笔记(一)
  4. docker redis集群搭建_Redis集群模式搭建
  5. Java迭代器(转)(iterator详解以及和for循环的区别)
  6. js端调用android端同步方法,JS怎样调用Android本地原生方法
  7. 期末考试中微积分的证明题的分析:Taylor级数展开
  8. 基于ATMEGA8的Arduino Nano(UNO)开发板
  9. 第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明
  10. 在国内安装Pytorchy以及遇到的问题