upstream keepalive debugging

Richard Kearsley rkearsley at blueyonder.co.uk
Tue Sep 3 12:42:14 UTC 2013


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 at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
        2
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
      260
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
      758
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
      950
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     1308
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     1748
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     1992
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     2316
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     2767
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     3063
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     3392
root at dev0:/root # netstat -n | grep "10.0.0.11.80" | grep "ESTAB" | wc -l
     3491
root at 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






More information about the nginx mailing list