From: Eric Dumazet <eric.dumazet@gmail.com>
To: Gaspar Chilingarov <gasparch@gmail.com>
Cc: Ben Greear <greearb@candelatech.com>, netdev <netdev@vger.kernel.org>
Subject: Re: PROBLEM: Linux kernel 2.6.31 IPv4 TCP fails to open huge amount of outgoing connections (unable to bind ... )
Date: Wed, 21 Apr 2010 02:14:10 +0200 [thread overview]
Message-ID: <1271808850.7895.631.camel@edumazet-laptop> (raw)
In-Reply-To: <n2g46c8cb3e1004201657t50599d7em5535f2f12af96b59@mail.gmail.com>
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.
next prev parent reply other threads:[~2010-04-21 0:14 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 22:17 PROBLEM: Linux kernel 2.6.31 IPv4 TCP fails to open huge amount of outgoing connections (unable to bind ... ) Gaspar Chilingarov
2010-04-20 22:31 ` Eric Dumazet
2010-04-20 23:18 ` Gaspar Chilingarov
2010-04-20 23:42 ` Eric Dumazet
2010-04-21 0:14 ` Evgeniy Polyakov
2010-04-20 23:07 ` Ben Greear
2010-04-20 23:20 ` Gaspar Chilingarov
2010-04-20 23:20 ` Gaspar Chilingarov
2010-04-20 23:30 ` Ben Greear
2010-04-20 23:35 ` Gaspar Chilingarov
2010-04-20 23:49 ` Ben Greear
2010-04-20 23:57 ` Gaspar Chilingarov
2010-04-21 0:14 ` Eric Dumazet [this message]
2010-04-21 0:05 ` Eric Dumazet
2010-04-21 0:12 ` Gaspar Chilingarov
2010-04-21 0:14 ` David Miller
2010-04-21 0:30 ` Evgeniy Polyakov
2010-04-21 2:04 ` David Miller
2010-04-21 5:46 ` Eric Dumazet
2010-04-21 8:25 ` Evgeniy Polyakov
2010-04-21 9:02 ` Eric Dumazet
2010-04-21 9:58 ` Evgeniy Polyakov
2010-04-21 10:21 ` Eric Dumazet
2010-04-21 11:27 ` Eric Dumazet
2010-04-21 16:52 ` George B.
2010-04-21 18:27 ` Evgeniy Polyakov
2010-04-21 18:43 ` Eric Dumazet
2010-04-21 18:58 ` Evgeniy Polyakov
2010-04-21 19:26 ` Eric Dumazet
2010-04-21 20:08 ` Evgeniy Polyakov
2010-04-23 2:06 ` David Miller
2010-04-25 14:26 ` Michael S. Tsirkin
2010-04-25 15:56 ` Evgeniy Polyakov
2010-04-25 16:13 ` Eric Dumazet
2010-04-25 16:21 ` Eric Dumazet
2010-04-25 16:35 ` Michael S. Tsirkin
2010-04-25 22:08 ` David Miller
2010-04-21 19:03 ` Narendra Choyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1271808850.7895.631.camel@edumazet-laptop \
--to=eric.dumazet@gmail.com \
--cc=gasparch@gmail.com \
--cc=greearb@candelatech.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox