Upstream keepalive debugging

Hi
I seem to have an issue where the upstream keepalives aren’t being
re-used

proxy_http_version 1.1;

upstream dev1 {
server 10.0.0.11 max_fails=0;
keepalive 1024;
}

location /
{
proxy_pass http://dev1;
proxy_set_header Connection “”;
}

On a separate server I run ‘ab -n 500 -c 500
http://10.0.0.10/test/blah.txt’ … a few times waiting say 10 seconds
between runs

on the main server I can do netstat between runs, here’s the results:

root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
2
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
260
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
758
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
950
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
1308
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
1748
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
1992
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
2316
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
2767
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
3063
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
3392
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
3491
root@dev0:/root # netstat -n | grep “10.0.0.11.80” | grep “ESTAB” | wc
-l
3787

It shouldn’t ever need more than 500 connections to the upstream, but it
keeps making more? and doesn’t stick to the 1024 limit…
What’s going on?

nginx/1.4.1 / FreeBSD 9.1

Ah, let me guess - is the keepalive number “per worker”?

Hello!

On Tue, Sep 03, 2013 at 02:19:32PM +0100, Richard K. wrote:

Ah, let me guess - is the keepalive number “per worker”?

Sure, and it’s what documentation explicitly states, see
http://nginx.org/r/keepalive:

: The connections parameter sets the maximum number of idle
: keepalive connections to upstream servers that are preserved in
: the cache of each worker process.


Maxim D.
http://nginx.org/en/donation.html