Hi all,
I've got a dedicated 1000Mbps link between two sites with a rtt of 7ms,
which seems to be dropping about 1 in 20000 packets (MTU of 1500 bytes).
I've got identical boxes at either end of the link running 2.6.27
(e1000e 0.3.3.3-k6), and I've been trying to saturate the link with TCP
transfers in spite of the packet loss.
I can chuck UDP at near-linespeed over the link (/dev/zero + nc), which
seems to almost saturate it at 920Mbps. However, TCP throughput of a
single stream (/dev/zero + nc) averages about 150Mbps. Looking at the
tcptrace time sequence graphs of a capture, the TCP window averages out
at about 3MB - although after an initial exponential ramp up, the moment
the sender realises a packet is lost, the throughput appears to be
clamped to only use about ~5% of the available window. I assume this is
the congestion control algorithm at the sender applying a congestion
window. Throughput increases very gradually until the next dropped
packet, at which point it drops down again.
I've tried increasing the network buffer sizing at both ends...
net.ipv4.tcp_mem = 766464 1021952 1532928
net.ipv4.tcp_wmem = 4194304 4194304 4194304
net.ipv4.tcp_rmem = 4194304 4194304 4194304
net.core.wmem_max = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 4194304
net.core.rmem_default = 4194304
...and disabling SACK, and trying every available congestion control
algorithm in the mainline kernel, but without any major change. I've
also tried to adjust the congestion window by varying
net.ipv4.tcp_max_ssthresh, and net.ipv4.tcp_abc. The txqueuelen of the
interfaces is 1000.
What else should I be doing to crank up the throughput and defeat the
congestion control? Could jumbo frames help? Is there an equivalent
congestion control module to RUDE_TCP
(http://www.weedissent.net/code/rude_tcp-2.4.20.patch) for 2.6, or is
this a Bad Idea?
thanks,
Matthew.
--
Matthew Hodgson <matthew@xxxxxxxxxxxxx>
Media & Systems Project Manager
Tel: +44 (0) 845 666 7778
http://www.mxtelecom.com
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html