UDT4 and rsync? support to socket.c?

Jamie Lokier jamie at shareable.org
Thu Mar 25 21:47:20 MDT 2010


Jan Wagner wrote:
> Jamie Lokier kirjoitti:
> >Jan Wagner wrote:
> >  
> >>Hi, has anyone of the devels considered adding UDT4 fast reliable udp 
> >>transport to socket.c, as a user-selectable alternative to using default 
> >>slow TCP?
> >>
> >>It could give a 4 to 10-fold throughput improvement to rsync speed over 
> >>wide area networks.
> >>    
> >
> >If you're seeing that, you must be using an old OS at one/both ends,
> >or poor TCP settings, or a broken router, or have a very unreliable link.
> >  
> Seeing it, with 10G links to the Internet and 1G/10G machines on the 
> links, in Europe and over different continents, lots of small files (few 
> gbyte per file), reasonably new Ubuntu/Debian typically at the ends, 
> NICs typically Myrinet and Chelsio, single computer disk subsys' can 
> sustain about 6 Gbps.
> 
> Sure, on home cable and short distances TCP at least ramps up reasonably 
> fast and rate recovery does not take ages and it fares pretty well vs 
> UDP rates. Can't get quite the same out of TCP on 10G (except locally). 
> In some cases non-ssh rsync throughput is closer to 100Mbps (was on 
> Japan-Finland i think) than to 500..900Mbps/~1G nic/udp/udt4/tsunami rate.

At those speeds and distances you probably need to raise at least the
third value in /proc/sys/net/ipv4/tcp{r,w}mem quite a lot (gigabytes =
bandwidth * delay), and you'll need enough RAM for it (so will UDT4).
I'm not sure if /proc/sys/net/ipv4/tcp_mem also needs changing, and
/proc/sys/net/core/{r,w}mem_max.

There are also several choices of congestion control algorithm; the
default might not be best for your network.

> >Anyway, if you really want to use UDT4, it is probably better to use a
> >generic TCP<->UDT4 proxy and point rsync to that.
> >
> Thanks, hmm, actually there seems to be 
> http://sourceforge.net/projects/udtgate/   I'll give it a go...!

Do let us know how it performs!

I'll be interested if TCP cannot reach anywhere near the same
performance level, because TCP is hardware assisted if you have
sensible 10G hardware, and I can't imagine UDT4 needing any less RAM
on an unreliable network.

-- Jamie


More information about the rsync mailing list