* 40k+ outbound connections and bind() problem @ 2011-01-26 12:14 denys 2011-01-26 12:23 ` Daniel Baluta 0 siblings, 1 reply; 7+ messages in thread From: denys @ 2011-01-26 12:14 UTC (permalink / raw) To: netdev I am running server (TCP accelerator), which is initiating more than 40K connections. Each instance of server bound to separate IP, and each of them handling around 5-10K connections. At moments, when i have excessive connect/disconnect events if i try to establish connection even from IP is not used, during bind() i am getting errno "Address already in use". What can be the issue? Will it help if i increase in kernel hardcoded limit from 64K TCP bind hash entries to higher values? ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 40k+ outbound connections and bind() problem 2011-01-26 12:14 40k+ outbound connections and bind() problem denys @ 2011-01-26 12:23 ` Daniel Baluta 2011-01-26 12:35 ` denys 0 siblings, 1 reply; 7+ messages in thread From: Daniel Baluta @ 2011-01-26 12:23 UTC (permalink / raw) To: denys; +Cc: netdev Hi, On Wed, Jan 26, 2011 at 2:14 PM, <denys@visp.net.lb> wrote: > I am running server (TCP accelerator), which is initiating more than 40K > connections. > Each instance of server bound to separate IP, and each of them handling > around 5-10K connections. > At moments, when i have excessive connect/disconnect events if i try to > establish connection even from IP is not used, > during bind() i am getting errno "Address already in use". > What can be the issue? > Will it help if i increase in kernel hardcoded limit from 64K TCP bind hash > entries to higher values? Please provide more information. What kernel version are you using? Are you binding on a SO_REUSEADDR socket right? thanks, Daniel. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 40k+ outbound connections and bind() problem 2011-01-26 12:23 ` Daniel Baluta @ 2011-01-26 12:35 ` denys 2011-01-26 13:00 ` Daniel Baluta 0 siblings, 1 reply; 7+ messages in thread From: denys @ 2011-01-26 12:35 UTC (permalink / raw) To: Daniel Baluta; +Cc: netdev On Wed, 26 Jan 2011 14:23:44 +0200, Daniel Baluta wrote: > Hi, > > On Wed, Jan 26, 2011 at 2:14 PM, <denys@visp.net.lb> wrote: >> I am running server (TCP accelerator), which is initiating more than >> 40K >> connections. >> Each instance of server bound to separate IP, and each of them >> handling >> around 5-10K connections. >> At moments, when i have excessive connect/disconnect events if i try >> to >> establish connection even from IP is not used, >> during bind() i am getting errno "Address already in use". >> What can be the issue? >> Will it help if i increase in kernel hardcoded limit from 64K TCP >> bind hash >> entries to higher values? > > Please provide more information. What kernel version are you using? > Are you binding on a SO_REUSEADDR socket right? Latest stable, 2.6.37 No, but trying with it now. At same time i think it is not correct, if i try to bind to "unused" for any connections IP, and it will return such error. It is not listening socket, it is outbound connection s = socket(...) memset(&name,0x0,sizeof(name)); name.sin_family=AF_INET; name.sin_addr.s_addr=s_stx->src_ip; name.sin_port=0; bind() connect() Now i will try to put between socket and bind setsockopt(netsocket,SOL_SOCKET,SO_REUSEADDR,(void*)&tmpint,sizeof(tmpint)); But IMHO it is not very correct for outgoing connections. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 40k+ outbound connections and bind() problem 2011-01-26 12:35 ` denys @ 2011-01-26 13:00 ` Daniel Baluta 2011-01-26 13:17 ` Eric Dumazet 0 siblings, 1 reply; 7+ messages in thread From: Daniel Baluta @ 2011-01-26 13:00 UTC (permalink / raw) To: denys; +Cc: netdev Hi, > Latest stable, 2.6.37 Please apply this patch [1] and see if it's still happening. thanks, Daniel [1] http://www.spinics.net/lists/netdev/msg152204.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 40k+ outbound connections and bind() problem 2011-01-26 13:00 ` Daniel Baluta @ 2011-01-26 13:17 ` Eric Dumazet 2011-01-26 13:23 ` denys 0 siblings, 1 reply; 7+ messages in thread From: Eric Dumazet @ 2011-01-26 13:17 UTC (permalink / raw) To: Daniel Baluta; +Cc: denys, netdev Le mercredi 26 janvier 2011 à 15:00 +0200, Daniel Baluta a écrit : > Hi, > > > Latest stable, 2.6.37 > > Please apply this patch [1] and see if it's still happening. > > thanks, > Daniel > > [1] http://www.spinics.net/lists/netdev/msg152204.html > - I dont think it'll help ;) Denys problem is if one source IP address is used, there is an absolute 64K limit to (IP, port) tuple Only thing you can do is to tune /proc/sys/net/ipv4/ip_local_port_range to get close to 64K limit ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 40k+ outbound connections and bind() problem 2011-01-26 13:17 ` Eric Dumazet @ 2011-01-26 13:23 ` denys 2011-01-26 13:26 ` Eric Dumazet 0 siblings, 1 reply; 7+ messages in thread From: denys @ 2011-01-26 13:23 UTC (permalink / raw) To: Eric Dumazet; +Cc: Daniel Baluta, netdev On Wed, 26 Jan 2011 14:17:14 +0100, Eric Dumazet wrote: > Le mercredi 26 janvier 2011 à 15:00 +0200, Daniel Baluta a écrit : >> Hi, >> >> > Latest stable, 2.6.37 >> >> Please apply this patch [1] and see if it's still happening. >> >> thanks, >> Daniel >> >> [1] http://www.spinics.net/lists/netdev/msg152204.html >> - > > I dont think it'll help ;) > > Denys problem is if one source IP address is used, there is an > absolute > 64K limit to (IP, port) tuple > > Only thing you can do is to tune > /proc/sys/net/ipv4/ip_local_port_range > to get close to 64K limit No, it is not one ip source. As i mention before, i am binding each instance to different IP before connect(). And when i am having issues and such errors, i am trying httping and binding it to some unused ip, but still getting this error. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 40k+ outbound connections and bind() problem 2011-01-26 13:23 ` denys @ 2011-01-26 13:26 ` Eric Dumazet 0 siblings, 0 replies; 7+ messages in thread From: Eric Dumazet @ 2011-01-26 13:26 UTC (permalink / raw) To: denys; +Cc: Daniel Baluta, netdev Le mercredi 26 janvier 2011 à 15:23 +0200, denys@visp.net.lb a écrit : > On Wed, 26 Jan 2011 14:17:14 +0100, Eric Dumazet wrote: > > Le mercredi 26 janvier 2011 à 15:00 +0200, Daniel Baluta a écrit : > >> Hi, > >> > >> > Latest stable, 2.6.37 > >> > >> Please apply this patch [1] and see if it's still happening. > >> > >> thanks, > >> Daniel > >> > >> [1] http://www.spinics.net/lists/netdev/msg152204.html > >> - > > > > I dont think it'll help ;) > > > > Denys problem is if one source IP address is used, there is an > > absolute > > 64K limit to (IP, port) tuple > > > > Only thing you can do is to tune > > /proc/sys/net/ipv4/ip_local_port_range > > to get close to 64K limit > No, it is not one ip source. > As i mention before, i am binding each instance to different IP before > connect(). > And when i am having issues and such errors, i am trying httping and > binding it to some unused ip, but still getting this error. Ah OK, you definitely want to use REUSEADDR then. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-01-26 13:26 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-01-26 12:14 40k+ outbound connections and bind() problem denys 2011-01-26 12:23 ` Daniel Baluta 2011-01-26 12:35 ` denys 2011-01-26 13:00 ` Daniel Baluta 2011-01-26 13:17 ` Eric Dumazet 2011-01-26 13:23 ` denys 2011-01-26 13:26 ` Eric Dumazet
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.