Testing Setup of kernel 2.6.18-rc4
From Wiki
This page contains testing setup for 2.6.18-rc4 kernel
[edit]
Testbed
[edit]
Setup
- Download kernel 2.6.18-rc4 and CUBIC v2.0 patch or CUBIC v2.1 patch and install them on sender 1 and 2.
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.18-rc4.tar.gz patch -p1 < CUBIC patch
- Install FreeBSD and our dummynet modifications on router 1-2. For more details, see Dummynet Installation
- At sender 1-2 and receiver 1-2, increase the maximum socket buffer size. For example, if the maximum is 64 Mbytes, you can set MAXBUF to 67108864.
# we only touch the maximum TCP buffer size # so, normal users don't complain about this sysctl -w net.core.rmem_max=$MAXBUF sysctl -w net.core.wmem_max=$MAXBUF sysctl -w net.ipv4.tcp_rmem="4096 87380 $MAXBUF" sysctl -w net.ipv4.tcp_wmem="4096 65536 $MAXBUF"
- Think about the case when the receiver is not tuned while the sender is tuned
- At sender 1-2 and receiver 1-2, Set the ring buffer size to 4096 and disable TSO for a highspeed interface being tested. For example, set INF to eth1, MAXBACKLOG to 3000, RX_RING to 4096, and TSO_ON to 'off'.
sysctl -w net.ipv4.tcp_no_metrics_save=1 sysctl -w net.core.netdev_max_backlog=$MAXBACKLOG ifconfig $INF txqueuelen $MAXBACKLOG # rx and tx ring buffer size ethtool -G $INF rx $RX_RING ethtool -G $INF tx $TX_RING # tso on/off ethtool -K $INF tso $TSO_ON
- Download iperf ( local copy) and apply the Zopt patch.
tar vxfz iperf-1.7.0-source.tar.gz patch -p1 < iperf-1.7.0-Zopt.patch
- Make sure all high-speed protocols being tested are loaded to the kernel
modprobe tcp_cubic modprobe tcp_htcp modprobe tcp_highspeed
- run the iperf with a large buffer size on the receiver 1-2
iperf -s -w 64M
- Calculate the BDP and run the iperf on the sender 1-2. You can specify a congestion control algorithm for the flow. In the example, we choose a CUBIC flow.
iperf -c client_address -Z cubic -w BDP -i 5 -p 8000 -t 600
