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

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

在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中的配置即可,在[Service]模块下添加如下内容。systemd.conf.d/*.conf中配置会覆盖system.conf。1

2

3DefaultLimitCORE=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 文档,在[Service]模块下添加如下内容:1

2

3LimitCORE=infinity

LimitNOFILE=100000

LimitNPROC=100000

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

2systemctl daemon-reload

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目录中的配置所覆盖。EOF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值