Stay Hungry.Stay Foolish.
Nginx Too many open files报错

背景

线上nginx服务器升级配置之后,重启发现报错”Too many open files”

排查

查看ulimit和配置文件,都是65535,这个设置符合预期的,又查看了nginx的master和worker进程/proc/3202/limits,Max open files都是1024,果然有问题,理论上应该是65535才对呀,然后又去别的机器的nginx查看了,发现是65535,果然是进程这个地方有问题

思考

只是升级了配置,重启了机器,什么也没有修改,为啥nginx进程没有走系统的默认ulimit限制,对比了修改之前,唯一不同的地方是一个nginx是手动启动,一个是依赖systemctl启动的,所以难道systemctl启动的nginx和手动启动的nginx有什么不同吗

定位

systemctl启动有它自己ulimit限制,确实是被systectl影响了

解决

修改 vim /etc/systemd/system.conf 配置,加入下面两行

DefaultLimitNOFILE=102400
DefaultLimitNPROC=65535
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
评论

暂无评论~~