Thread (14 messages) 14 messages, 5 authors, 2005-02-21

Re: many outgoing tcp sockets are slower than a few

From: Baruch Even <hidden>
Date: 2005-02-21 13:59:19

Christian Schmid wrote:
bert hubert wrote:
quoted
On Mon, Feb 21, 2005 at 01:35:33AM +0100, Christian Schmid wrote:
Outgoing data. I am using sendfile() to send the file on a non-blocking 
socket but the call blocks for 100 ms per socket if I get over 3000 
sockets. Thats causing the massive slowdown in sum. I first thought its 
a disk-issue but I tried with pure-cache data as well and it still blocks.
quoted
quoted
3000 sockets = no slowdown at all (500 MBit in use)
3300 sockets = 10% slowdown
3600 sockets = 30% slowdown
4000 sockets = 60% slowdown (i aborted here, as it only uses 200 MBit 
for sending... catastrophy!)
[snip]
quoted
I'm a bit confused, it is a download service so you are probably 
*sending*
data? 
Only sending. Receiving ACKs of course.
I've been doing some work to improve ACK performance, you can find some 
patches for Linux 2.6.6 at http://hamilton.ie/net/

I've only tested these patches for a single (or few) very fast 
connections, but I'd expect the problem might manifest itself for a very 
large number of connections as well. Though then you might hit other 
bottlenecks (memory access for different structures).

Baruch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help