在负载testing中,nginx – connect()失败

我一直在做我的nginx反向代理wrk的一些负载testing – >我的web应用程序设置,我注意到,当我达到1000+并发连接,nginx开始返回502s和以下错误信息:

 2015/04/17 20:45:26 [crit] 6068#0: *1116212677 connect() to \ 127.0.0.1:3004 failed (99: Cannot assign requested address) \ while connecting to upstream, client: xxx.xxx.xx.165, server: \ foo.bar.com, request: "GET /my/route HTTP/1.1", upstream: \ "http://127.0.0.1:3004/my/route", host: "foo.bar.com" 

wrk命令是:

 wrk -t10 -c500 -d5m "https://foo.bar.com/my/route" -H "Accept: application/json" 

我试图弄清楚这里可能出了什么问题。 我的web应用程序正在侦听由端口3004的nginx代理的请求。是否nginx用尽端口? Web应用程序无法处理这么多的请求? 请求是否超时? 我不清楚这一点,并希望有更多的洞察力。

已经在这里回答: https : //stackoverflow.com/questions/14144396/nginx-proxy-connect-to-ip80-failed-99-cannot-assign-requested-address

该消息表明你已经用完本地套接字/端口。

尝试增加networking限制:

 echo "10240 65535" > /proc/sys/net/ipv4/ip_local_port_range sysctl net.ipv4.tcp_timestamps=1 sysctl net.ipv4.tcp_tw_recycle=0 sysctl net.ipv4.tcp_tw_reuse=1 sysctl net.ipv4.tcp_max_tw_buckets=10000 

或者,您可以尝试unix套接字,看看是否有帮助。