I have a typical long fat network -- clients connect to servers with large bandwidth but also significant latency due to geographic distances of 30ms to 100ms, transferring large files.

I've noticed the classic decay of throughput ~ which decays as 1 / latency. Typical throughputs based on tests are well below the theoretical bandwidths of clients and servers and follow this decay rule.

My file transfer tests seem to be consistent with a tcp windows size of 64KB, suggesting that scaling is not enabled.

My servers are all running Ubuntu 1804.

How do I view and tweak the tcp window size settings on my Ubuntu 1804 servers? I could not find this info in previous answers.

  • Window scaling should be enabled by default. Capture packets from both ends of the connection to see if something is mangling or dropping packets on the path in between. – kasperd Dec 25 '18 at 11:33
  • @kasperd thanks, which tool do you recommend? My apologies I've never dug this deep into networking issues before. – David Simic Dec 25 '18 at 16:08
  • You could run a command similar to this at each end: sudo tcpdump -pni eth0 'port 443' -s0 -Uw filename.pcap You may need to replace eth0, 443, and filename with suitable values. To inspect the contents of the file you can use tcpdump -nr filename.pcap or wireshark filename.pcap. – kasperd Dec 25 '18 at 21:56
  • You can check and tune network stack with sysctl utility. For example, run sysctl -a|grep tcp to see current settings. See collection of useful resources here github.com/leandromoreira/linux-network-performance-parameters and in-depth discussion here blog.packagecloud.io/eng/2016/06/22/… – Yuri Lachin Dec 26 '18 at 9:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.