linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制
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
總結
以上是生活随笔為你收集整理的linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《逆袭之星途璀璨》大结局是什么 各主角最
- 下一篇: mean技术栈 linux,“MEAN”