Linux下ulimit關(guān)于open files的配置過程
ulimit關(guān)于open files的配置
操作系統(tǒng)默認(rèn)只能打開1024個(gè)文件,打開的文件超過這個(gè)數(shù)發(fā)現(xiàn)程序會(huì)有“too many open files”的錯(cuò)誤,1024對(duì)于大數(shù)據(jù)系統(tǒng)來說顯然是不夠的,如果不設(shè)置,基本上整個(gè)大數(shù)據(jù)系統(tǒng)是“不可用的”,根本不能用于生產(chǎn)環(huán)境。
在centos 5/6 等版本中,資源限制的配置可以在 /etc/security/limits.conf 設(shè)置,針對(duì)root/user等各個(gè)用戶或者*代表所有用戶來設(shè)置。
當(dāng)然,/etc/security/limits.d/ 中可以配置,系統(tǒng)是先加載limits.conf然后按照英文字母順序加載limits.d目錄下的配置文件,后加載配置覆蓋之前的配置。
一個(gè)配置示例
如下:
* soft nofile 65535 * hard nofile 65536 * soft nproc 65535 * hard nproc 65535 * soft core 65535 * hard core 65535
配置方法
如下:
echo "* soft nofile 65535" >> /etc/security/limits.conf echo "* hard nofile 65535" >> /etc/security/limits.conf echo "* soft nproc 65535" >> /etc/security/limits.conf echo "* hard nproc 65535" >> /etc/security/limits.conf
在bash中,有個(gè)ulimit命令,提供了對(duì)shell及該shell啟動(dòng)的進(jìn)程的可用資源控制。主要包括打開文件描述符數(shù)量、用戶的最大進(jìn)程數(shù)量、coredump文件的大小等。
在CentOS 7 / RHEL 7的系統(tǒng)中,使用Systemd替代了之前的SysV,因此 /etc/security/limits.conf 文件的配置作用域縮小了一些。limits.conf這里的配置,只適用于通過PAM認(rèn)證登錄用戶的資源限制,它對(duì)systemd的service的資源限制不生效。登錄用戶的限制,與上面講的一樣,通過 /etc/security/limits.conf 和 limits.d 來配置即可。
對(duì)systemd service的資源限制的配置
全局的配置,放在文件 /etc/systemd/system.conf 和 /etc/systemd/user.conf。
同時(shí),也會(huì)加載兩個(gè)對(duì)應(yīng)的目錄中的所有.conf文件 /etc/systemd/system.conf.d/*.conf 和 /etc/systemd/user.conf.d/*.conf
其中,system.conf 是系統(tǒng)實(shí)例使用的,user.conf用戶實(shí)例使用的。一般的sevice,使用system.conf中的配置即可。
systemd.conf.d/*.conf中配置會(huì)覆蓋system.conf。
配置參數(shù)如下:
DefaultLimitCORE=infinity DefaultLimitNOFILE=65535 DefaultLimitNPROC=65535
注意:
- 修改了system.conf后
- 需要重啟系統(tǒng)才會(huì)生效
針對(duì)單個(gè)Service,也可以設(shè)置,以nginx為例。
編輯 /usr/lib/systemd/system/nginx.service 文件,或者 /usr/lib/systemd/system/nginx.service.d/my-limit.conf 文件
做如下配置:
[Service] LimitCORE=infinity LimitNOFILE=100000 LimitNPROC=100000
然后運(yùn)行如下命令,才能生效。
systemctl daemon-reload systemctl restart nginx.service
查看一個(gè)進(jìn)程的limit設(shè)置:
cat /proc/YOUR-PID/limits
例如我的一個(gè)nginx service的配置效果:
cat /proc/$(cat /var/run/nginx.pid)/limits
順便提一下:
CentOS7自帶的/etc/security/limits.d/20-nproc.conf,里面默認(rèn)設(shè)置了非root用戶的最大進(jìn)程數(shù)為4096,limit.conf的配置會(huì)被limit.d目錄中的配置覆蓋,這點(diǎn)需要注意,針對(duì)普通用戶,需要修改20-nproc.conf。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
apache虛擬主機(jī)中設(shè)置泛域名解析的方法
apache虛擬主機(jī)中設(shè)置泛域名解析,主要是用到ServerAlias 的配置,供大家學(xué)習(xí)參考2013-02-02ubuntu環(huán)境下安裝memcache及啟動(dòng)的方法
這篇文章主要介紹了ubuntu環(huán)境下安裝memcache及啟動(dòng)的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了ubuntu環(huán)境下memcache的安裝、啟動(dòng)及簡(jiǎn)單測(cè)試方法,需要的朋友可以參考下2018-03-03ubuntu系統(tǒng)中/etc/rc.local和/etc/init.d/rc.local的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于在ubuntu系統(tǒng)下/etc/rc.local和/etc/init.d/rc.local區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)需要的朋友們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-08-08你必須知道Linux系統(tǒng)的七種優(yōu)勢(shì)
你必須知道Linux系統(tǒng)的七種優(yōu)勢(shì),越來越多的電腦用戶開始使用 Linux進(jìn)行辦公、學(xué)習(xí),這篇文章主要介紹了Linux系統(tǒng)的多種優(yōu)勢(shì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03