[nginx] too many open files

错误log

2020/12/24 06:39:09 [alert] 8315#0: *4128715829 socket() failed (24: Too many open files) while connecting to upstream, client: xxxx, server: xxxx, request: "GET /client/v3/wallpaper_4k/wallpaperList.json?sign=9939e1fa528ec5b4b1145e2045483929&packageName=com.depth.visual.wallpaper4d&versionCode=22&tm=1608791954296&page=1&pageSize=20 HTTP/1.1", upstream: "http://10.0.0.103:8301/client/v3/wallpaper_4k/wallpaperList.json?sign=9939e1fa528ec5b4b1145e2045483929&packageName=com.depth.visual.wallpaper4d&versionCode=22&tm=1608791954296&page=1&pageSize=20", host: "xxxx"

解决方法

原因很明显Too many open files, Google解决方法,对比多个,尝试最靠谱的;

  1. ps aux | grep nginx 查看nginx worker的pid; cat /proc/pid/limits 查看限制
    在这里插入图片描述

    如图,soft open files的只只有1024

  2. 调大soft open files

    # /etc/security/limits.conf 文件中添加 * soft nofile 65535
    # 运行命令生效
    sysctl -p
    nginx -s reload
    
    # 再去查看nginx进程的limits, 并没有变化
    

在这里插入图片描述

# vim /usr/local/nginx/conf/nginx.conf  
  
worker_rlimit_nofile 65535;  //添加

events {
  use epoll;
  worker_connections  65535; //足够大了,不用改
}

root@ip-10-0-0-18:/home/logs/api# nginx  -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
root@ip-10-0-0-18:/home/logs/api# nginx  -s reload

在这里插入图片描述

查看limits已生效,check error_log 没有再报错了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值