centos 7的/etc/rc.local启动的服务无法突破ulimit -n文件数限制

linux很多系统优化配置问题,一定是运维过生产环境系统才能体会到问题的坑,因为生产环境才会有各种各样的奇葩事情发生,比如如下的情况,ulimit -n文件数明明设置了,可是在线上环境就是提示打开文件数过多。

具体情况如下:

[root@mcuhome]# ulimit  -n
102400

    /etc/security/limits.conf文件的连接数配置
    * 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

你可能感兴趣的:(linux,ulimit,rc.local,打开文件数,linux,高并发)