I'm trying to transfer about 100k files totaling 90gb. Right now I'm using rsync daemon but its slow 3.4mb/s and I need to do this a number of times. I'm wondering what options do I have that would max out a 100mbit connection over the internet and be very reliable.

link|improve this question

67% accept rate
1  
You're getting nearly a third of your connection - that's respectable, but not great. How far away as the electron flies are the files being transferred? – Shane Madden Nov 19 '11 at 1:17
50ms latency between the two servers. – incognito2 Nov 19 '11 at 2:52
3  
I saw an alot of files once hyperboleandahalf.blogspot.com/2010/04/… – sam Nov 21 '11 at 11:24
If you are using rsync daemon, there is no ssh involved, right? Then the explanation is probably the infrastructure in between the hosts. You could try netperf or iperf or flowgrind to test the speed between the hosts. If this test gives you a higher transfer rate, then you should look at how rsync is making things slow: read i/o on server slow, write i/o on client, many small files, filesystem etc.. – AndreasM Nov 21 '11 at 11:51
feedback

5 Answers

Have you considered Sneakernet? With large data sets overnight shipping is often going to be faster and cheaper than transferring via the Internet.

link|improve this answer
4  
"Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway." - AST – voretaq7 Nov 21 '11 at 21:29
feedback

You mention "rsync," so I assume you are using Linux:

Why don't you create a tar or tar.gz file? Network transfer time of one big file is faster than many small ones. You could even compress it if you wish...

Tar with no compression:

On the source server:

tar -cf file.tar /path/to/files/

Then on the receiving end:

cd /path/to/files/
tar -xf /path/to/file.tar

Tar with compression:

On the source server:

tar -czf file.tar.gz /path/to/files/

Then on the receiving end:

cd /path/to/files/
tar -xzf /path/to/file.tar.gz

You would simply use rsync to do the actual transfer of the (tar|tar.gz) files.

link|improve this answer
feedback

You can use various compression options of rsync.

-z, --compress              compress file data during the transfer
     --compress-level=NUM    explicitly set compression level
     --skip-compress=LIST    skip compressing files with suffix in LIST

compression ratio for binary files is very low, so you can skip those files using --skip-compress e.g. iso, already archived and compressed tarballs etc.

link|improve this answer
feedback

You could try the tar and ssh trick described here:

tar cvzf - /wwwdata | ssh root@192.168.1.201 "dd of=/backup/wwwdata.tar.gz"

this should be rewritable to the following:

tar cvzf - /wwwdata | ssh root@192.168.1.201 "tar xvf -"

You'd lose the --partial features of rsync in the process, though. If the files don't change very frequently, living with a slow initial rsync could be highly worth-while as it will go much faster in the future.

link|improve this answer
feedback

I'm a big fan of FTP. I use FTP to transfer media from my main computer to my server. I get good speeds, over LAN.

FTP is reliable, I'd give that a shot, as it's easy to set up, and it could be faster in some cases.

link|improve this answer
3  
FTP needs to die. It's unencrypted, it does not handle interruption well, and there are at least half a dozen viable alternatives for it that don't completely suck. – MDMarra Nov 21 '11 at 11:30
Ever hear of SFTP? – Tillman32 Nov 21 '11 at 21:18
5  
Yes, have you? It is in no way related to the FTP protocol in anything except name and the fact that it moves files around. – MDMarra Nov 21 '11 at 21:19
2  
FTP is also notoriously unreliable when traversing firewalls (it dates from a time before firewalls when having your client open a random port to accept back-connections was cool, and the hackery of Passive & Extended Passive FTP to work around that limitation is just that: Hackery) – voretaq7 Nov 21 '11 at 21:24
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.