CentOS7-ulimit


CentOS7-ulimit

簡介

CentOS-7之前,改變系統的ulimit值,一般有2種方式:

  1. ulimit -SHu 65535 寫入 /etc/profile或者/etc/bashrc
  2. /etc/security/limits.conf 修改此文件

但是centos-7 新增了/etc/security/limits.d/20-nproc.conf文件[1],並且該文件會覆蓋/etc/security/limits.conf的配置參數,也就是說你如果在limits.conf里配置的內容就不生效了,反而還會被覆蓋為:

*          soft    nproc     4096
root       soft    nproc     unlimited

而此時未經任何優化的centos-7的ulimit值為:

普通用戶:

open files                      (-n) 1024
max user processes              (-u) 4096

root:

open files                      (-n) 1024
max user processes              (-u) 15659

修改普通用戶和root的nofile和nproc值

  • 普通用戶
    • nproc:65535
    • nofile:65535
  • root

修改20-nproc.conf

cat > /etc/security/limits.d/20-nproc.conf <<'EOF'
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
 
#nproc
*          soft    nproc     65535
root       soft    nproc     unlimited
*          hard    nproc     65535
root       hard    nproc     unlimited
#nofile
*          soft    nofile     65535
*          hard    nofile     65535
EOF

centos-7額外修改

在CentOS 7 / RHEL 7的系統中,使用Systemd替代了之前的SysV,因此 /etc/security/limits.conf文件的配置作用域縮小了一些。limits.conf這里的配置,只適用於通過PAM認證登錄用戶的資源限制,它對systemd的service的資源限制不生效。登錄用戶的限制,與上面講的一樣,通過/etc/security/limits.conflimits.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。

# 修改systemd系統級ulimit
cat >> /etc/systemd/system.conf <<'EOF'
DefaultLimitCORE=infinity
DefaultLimitNOFILE=100000
DefaultLimitNPROC=100000
EOF
 
# 修改systemd用戶級ulimit
cat >>  /etc/systemd/user.conf <<'EOF'
DefaultLimitCORE=infinity
DefaultLimitNOFILE=100000
DefaultLimitNPROC=100000
EOF
 
systemctl daemon-reload

查看ulimit

ulimit -a|egrep 'open files|max user processes'

REF


  1. /etc/security/limits.d/下文件按字母順序加載 ↩︎

  2. 該值不能為unlimited,否則報錯,且不能登錄系統! ↩︎

  3. 該值必須 ≤ 內核參數fs.nr_open ↩︎

  4. http://www.jianshu.com/p/ec860e0b1c95 ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM