![]() |
Bulk Thruput Measurements-ANLBulk Thruput Measurements | Bulk throughput simulation | Windows vs. streams | Effect of load on RTT and loss | Bulk file transfer measurements |
Further measurements were made on September 26, 2001 from pharlap.slac.stanford.edu
to wiggum.mcs.anl.gov. Pharlap was a Sun E4500 with 6*226MHz cpus anda GE interface running
Solaris 5.8. Wiggum was a 2*866 Mhz Linux 2.4.2 host with a GE interface.
At this time the route was via ESnet, SLAC had an OC3 link and ANL an OC12.
Pipechar indicates possible congestion at the ANL
border. The throughput results
are shown to the right. The maxima (i.e. top 10% of the throughput measurements) were over
118 Mbits/s and were achieved for 8 or more streams for window sizes of
64 KBytes or more. This behavior (i.e. improvements as increase the
window from 8KBytes to 64 kBytes, followed by similar throughputs for window
sizes of 64KBytes or more is typical of Linux 2.4 TCP stacks, the borderline being
due to the window scaling factor).
Pharlap's link to ESnet was
upgraded to an OC12 (622Mbps) Packet over Sonet (PoS) connection from the
OC3 ATM connection on November 5 '01. We therefore
repeated the measurements on November 6 '01, with the result below shown to the
right. The reason for the curves for window size requests of 64MBytes or more
being very similar is since the maximum receiver size window at ANL was
64KBytes. Pharlap's windows were set to:
ndd /dev/tcp tcp_max_buf = 4194304
;ndd /dev/tcp tcp_cwnd_max = 2097152
;ndd /dev/tcp tcp_xmit_hiwat = 16384
;ndd /dev/tcp tcp_recv_hiwat = 24576
On November 7th, Bill Allcock of ANL increased the windows at
ANL to:
more /proc/sys/net/core/wmem_max = 8388608
;more /proc/sys/net/core/rmem_max = 8388608
;more /proc/sys/net/core/rmem_default = 65536
;more /proc/sys/net/core/wmem_default = 65536
;more /proc/sys/net/ipv4/tcp_rmem = 4096 87380 4194304
;more /proc/sys/net/ipv4/tcp_wmem = 4096 65536 4194304
Therefore
on
November 8th we repeated the measurements once again with the new window size at
ANL to see what the effect was. A very similar graph was obtained as shown
below. The strong resemblance between these two graphs for window sizes of
64KB and above, cast suspicion on whether
the windows were being set correctly. We therefore used the Solaris snoop
function to trace packets. Looking at the first 2 packets (the SYN from pharlap
and the SYN/ACK from wiggum) seen below, it is evident that the window scale
factor (wscale) from wiggum is 0 which means the maximum window size advertosed
by the receiver is 64KBytes.
The iperf command issued on pharlap was:
8cottrell@pharlap:~>iperf -c wiggum.mcs.anl.gov -w 512k -t 1 -p 5008
------------------------------------------------------------
Client connecting to wiggum.mcs.anl.gov, TCP port 5008
TCP window size: 512 KByte
------------------------------------------------------------
[ 4] local 134.79.240.26 port 35544 connected with 140.221.11.99 port 5008
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.1 sec 1.6 MBytes 11.8 Mbits/sec
Using ps -efl on wiggum we identified that the iperf server on port 5008 had a window size of 512kBytes:
000 S cottrell 32479 1 0 69 0 - 2017 rt_sig Nov06 ? 00:00:00 /nfs/dsl-homes02/cottrell/package/iperf-1.2/iperf -s -w 512k -p 5008
The snoop output observed on pharlap is shown below, and indicates the wscale factor advertized in its opening (SNY/ACK) packet is 1. This would only allow a maximum window of 128KBytes:
14cottrell@pharlap:~>sudo snoop -i /tmp/anldump2 | head
1 0.00000 PHARLAP.SLAC.Stanford.EDU -> wiggum.mcs.anl.gov TCP D=5008 S=35544 Syn Seq=3858732054 Len=0 Win=32850 Options=<nop,wscale 4,nop,nop,tstamp 833502290 0,nop,nop,sackOK,mss 1460>
2 0.05013 wiggum.mcs.anl.gov -> PHARLAP.SLAC.Stanford.EDU TCP D=35544 S=5008 Syn Ack=3858732055 Seq=3416717703 Len=0 Win=5840 Options=<mss
1460,nop,nop,sackOK,nop,wscale 1>
Created August 25, 2000, last update August 2, 2002.
Comments to iepm-l@slac.stanford.edu