TCP Tuning Guide

Search
TCP Troubleshooting

If your hosts are properly tuned and you still have performance issues, there are a few other things to look at.

The problem may well be in the network. First, use netstat -s to see if there are a lot of TCP retransmissions. TCP retransmits usually indicate network congestion, but can also happen with bad network hardware, or misconfigured networks. You may also see some TCP retransmissions if the sending host is much faster than the receiving host, but TCP flow control should make the number of retransmits relatively low.

pathrate can both be used to get an estimate of the link capacity. If the the capcacity is much lower than expected, this may indicate a network problem or unusually high congestion. Contact your network administrator in this case.

Check the Duplex Mode A common source of LAN trouble with 100BT networks is that the host is set to full duplex, but the ethernet switch is set to half-duplex, or visa versa. Most newer hardware will auto-negotiate this, but with some older hardware, auto-negotiation will sometimes fail, with the result being a working but very slow network (typically only 1-2 Mbps). Its best for both to be in full duplex if possible, but some older 100BT equipment only supports half-duplex. See the duplex checking instructions for some ways to check what your systems are set to.

Check if TCP-Offloading is enabled. Some NICs use TCP-Offloading to reduce the load on the CPU. But the NIC does not have enough memory for this to work well for WAN tranfsers. For some NICs such as the Intel e1000, you can disable this by using 'ethtool' (e.g.: ethtool -K eth0 tso off). For some other NICs such as Chelsio, you will need to recompile the network driver with TCP-offloading disabled.

tcptrace: You can also try using tcpdump to try to see exactly what TCP is doing. tcptrace is a very nice tool for formatting tcpdump output.

Sample Use:

tcpdump -s 100 -w /tmp/tcpdump.out host
hostname
(or on solaris: snoop -s 100 -o /tmp/tcpdump.out dest host hostname )
tcptrace -Sl /tmp/tcpdump.out
xplot /tmp/a2b_tsg.xpl

You can also try using the Fermi National Lab Network Troubleshooting Methodology".


© 2003-2004, Lawrence Berkeley National Laboratory