Tuesday, June 20, 2017

Checking linux congestion control

The network is slow!

Captures show no packet loss, and transit time across the LAN is negligible- but packets aren't getting out and put onto the wire quickly enough to make the transfer happen as fast as the user wants it.

TCP settings are all in files in /proc/sys/net/ipv4-  here's a quick line to print them all out.


ls -1 /proc/sys/net/ipv4/ | sort | while read line; do echo "$line,$(cat /proc/sys/net/ipv4/${line} 



The biggest thing I've found to look at are congestion control- tune it to your environment, but I have seen CUBIC work better than RENO to a significant degree in our cases.  I've gotten to "just change it to CUBIC and get back to me", but I haven't played with it in lab cases and forced every permutation of loss/delay/out of order in order to see what "real life experience" works with.


https://en.wikipedia.org/wiki/TCP_congestion_control

Tuning ideas- I'll take anything from nasa.gov:

https://www.nas.nasa.gov/hecc/support/kb/optional-advanced-tuning-for-linux_138.html