[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1271808850.7895.631.camel@edumazet-laptop>
Date: Wed, 21 Apr 2010 02:14:10 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Gaspar Chilingarov <gasparch@...il.com>
Cc: Ben Greear <greearb@...delatech.com>,
netdev <netdev@...r.kernel.org>
Subject: Re: PROBLEM: Linux kernel 2.6.31 IPv4 TCP fails to open huge
amount of outgoing connections (unable to bind ... )
Le mercredi 21 avril 2010 à 04:57 +0500, Gaspar Chilingarov a écrit :
> Ohhh, see my bug report again, please :)
>
> The problem arises when used port count is close to or more than the
> number of local ports available on the system (in your case 40000
> client connections is smaller than 51000 of available ports).
>
> I think that if you choose to go with default settings and try to bind
> half of your ports to one local IP and half of your ports - to another
> one -- you will hit this bug as well.
>
> If you explicitly bind to the local ports as well - it _may_ solve a
> problem - I will this today (it's just a workaround, but in fact not
> the solution :), but if you let kernel automatically find local ports
> - you will get the errors.
Yes, I posted a preliminar patch to solve this problem, please test
it ;)
But beware bind(port=0) time might be long. This is why high perf
programs prefer to give the exact port at bind(IP, port) time.
Algo will scan the whole range to find the port used by minimum number
of connection. Then it'll check if the selected IP was already in use.
If not -> ok, port found
If yes -> redo five time the same loop (I guess this redo should be
changed too, to use something else.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists