centos 7的/etc/rc.local啟動的服務無法突破ulimit -n檔案數限制
阿新 • • 發佈:2019-02-19
linux很多系統優化配置問題,一定是運維過生產環境系統才能體會到問題的坑,因為生產環境才會有各種各樣的奇葩事情發生,比如如下的情況,ulimit -n檔案數明明設定了,可是在線上環境就是提示開啟檔案數過多。
具體情況如下:
[root@mcuhome]# ulimit -n
102400
* soft nproc 102400
* hard nproc 102400
* soft nofile 102400
* hard nofile 102400
* soft stack 20480
* hard stack 20480
由/etc/rc.local啟動的程式,連結數依然使用預設1024,網上有2種關於該問題的說法(a種說法更為可靠):
a//etc/security/limits.conf配置的生效只針對觸發了tty ssh登入的使用者(我們的服務是守護啟動,沒有tty ssh登入,所以未生效)
b//etc/security/limits.conf配置的生效晚於/etc/rc.local自啟動(我們的所有程式服務由/etc/rc.local啟動),相當於我們的程式服務啟動時,網路連線數限制的配置還未生效,使用的是預設配置1024個連線。
通過/etc/profilet新增如下配置,可解決該問題。
ulimit -c unlimited
ulimit -n 102400