nginx Too many open files 报错解决办法

高并发场景,页面打开速度慢,检查主机nginx日志,发现在error.log日志中大量刷新Too many open files 报错信息。解决该问题需要优化主机open files参数,步骤如下。

1.修改主机open files 配置

此限制仅对非root用户有效,root用户进程无此限制。
vim /etc/security/limits.conf 调整配置如下
在这里插入图片描述
保存后实时生效。重新登录主机后 ulimit -a 查看配置如下,已成功修改。
在这里插入图片描述

2.优化nginx work_connections相关参数,新增worker_rlimit_nofile配置

worker_processes 设置为主机cpu同数量
查看主机cpu数可用top命令输入1。

在这里插入图片描述

3.检查nginx进程限制

优化以上两步之后还是发现无效,有可能是因为ulimit和limits.conf的配置只针对登录用户,而如果是以服务的形式启动。
cat /proc/pid/limits 查看nginx进程限制配置信息
在这里插入图片描述
参考下文 修改nginx service文件。
https://www.bbsmax.com/A/Vx5MDR99JN

如果主机无systemctl命令 ,只有service命令需要重启nginx 生效。service nginx restart重启nginx

cat /etc/init.d/nginx
查看nginx service启动脚本可知,reload会保留原pid,而restart先stop再start,nginx会重新读取配置获得一个新的pid,配置的worker_rlimit_nofile才会生效。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44624722/article/details/124751970
今日推荐