How to disable "slow start" on Linux 2.6.18-164.2.1.el5

user13185 asked:

I have a problem: sending small files (16MB) works with at most ~ 2MB/s speed. While on larger files, 16MB/s is easily achievable.

When I was checking details, it looks that speed of transfers starts very low – ~ 200KB/s, and then increases, but 16MB is too small to reach big enough speed.

I read about it, and it looks like it is “Slow Start” technique. I did find some pages on the google on how to disable it, but nothing that I tried so far seems to help.

The problem is that I need to send, very often, relatively small files, and the network link is fast enough to handle it (16MB/s gives me 1 second to transfer the file, which is perfectly OK for me), but the Slow Start thing is causing the file to transfer in ~ 8 seconds which is unacceptable.

The question basically boils down to: is there any way to disable slow start, or at the very least – make it start with speeds like 4MB/s, and not 200KB/s?

My answer:

The ability to change the inital window size was backported beginning with RHEL 5.8 and RHEL 6.3.

So, first, upgrade your system, and then you specify the cwnd in your ip route. For instance:

ip route change default via dev eth0 initcwnd 10 rtt 2500

The rtt specification is needed to work around a bug in the EL5 backport where initcwnd would not be applied in all cases. (The bug is not present in the EL6 backport.) The example given is for WAN links; it should be much smaller (e.g. 100) for a LAN route.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.