Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Aug 2007 17:19:14 +0100
From:      Tom Judge <tom@tomjudge.com>
To:        Igor Sysoev <is@rambler-co.ru>
Cc:        freebsd-net@freebsd.org
Subject:   Re: maximum number of outgoing connections
Message-ID:  <46C9BF02.5050007@tomjudge.com>
In-Reply-To: <20070820151142.GA20183@rambler-co.ru>
References:  <20070820151142.GA20183@rambler-co.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Igor Sysoev wrote:
> It seems that FreeBSD can not make more than
> 
> net.inet.ip.portrange.last - net.inet.ip.portrange.first
> 
> simultaneous outgoing connections, i.e., no more than about 64k.
> 
> If I made ~64000 connections 127.0.0.1:XXXX > 127.0.0.1:80, then
> connect() to an external address returns EADDRNOTAVAIL.
> 
> net.inet.ip.portrange.randomized is 0.
> 
> sockets, etc. are enough:
> 
> ITEM        SIZE     LIMIT      USED      FREE  REQUESTS  FAILURES
> socket:      356,   204809,    13915,   146443, 148189452,        0
> inpcb:       180,   204820,    20375,   137277, 147631805,        0
> tcpcb:       464,   204800,    13882,   142102, 147631805,        0
> tcptw:        48,    41028,     6493,    11213, 29804665,        0
> 
> I saw it on 6.2-STABLE.
> 
> 

In an ideal world (Not sure if this is quite correct for FreeBSD) TCP 
connections are tracked with a pair of tupels  source-addr:src-port -> 
dst-addr:dst-port

As your always connecting to the same destination service 127.0.0.1:80 
and always from the same source IP 127.0.0.1 then you only have one 
variable left to change, the source port.  If you where to use the hole 
of the whole of the port range minus the reserved ports you would only 
ever be able to make 64512 simultaneous connections.  In order to make 
more connections the first thing that you may want to start changing is 
the source IP. If you added a second IP to you lo0 interface (say 
127.0.0.2) and used a round robin approach to making your out bound 
connections then you could make around 129k outbound connections.

I am not sure if there are any other constraints that need to be taken 
into account such as the maximum number of sockets, RAM etc....

Tom



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46C9BF02.5050007>