Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm a bit puzzled by this? Why is rsync faster than scp? Doesn't rsync use scp beneath or does it do something more efficient? Is there some way to speed up scp?

share|improve this question
    
It's a fresh copy. –  grm Sep 30 '10 at 14:29

6 Answers 6

up vote 25 down vote accepted

Rsync will obviously be faster than scp if the target already contains some of the source files, since rsync only copies the differences. But I suspect your question was about doing a straightforward copy to an empty target.

You've passed the -z option to rsync; this turns on compression. If the network bandwidth is the limiting factor (it often is), compression can improve the transfer speed by a noticeable amount.

You can also enable compression with scp by passing the -C option. This should about even things out with rsync. Compression is not enabled by default in ssh because it saves bandwidth but adds latency and CPU overhead; latency is bad for interactive sessions (this doesn't apply to scp), and the CPU overhead is useless if the files you're copying are already compressed.

Older versions of rsync used rsh rather than ssh as the default transport layer, to a fair comparison would be between rsync and rcp. But ssh has been the default since 2.6.0 released on 2004-01-01.

With identical compression settings, I'd expect rsync and scp to have essentially the same speed. Please share benchmarks if you find otherwise.

share|improve this answer
    
Nice, using -C made my transfer speed increasing from 5MB to 20MB –  kenji Apr 3 at 8:00

It used to be the other way around, but I believe rsync's speed has improved greatly the past few revisions. It also depends on how many files you're copying. If it's a lot, rsync will usually be faster because scp spawns a new process for each file you're copying. You can try weakening the cipher scp uses to see if it speeds up. Last I recall, the arcfour cipher was the fastest.

share|improve this answer
    
Scp doesn't actually spawn a new process for each file being copied. You have one process on the sending side and one on the receiving side, just as with rsync. –  Kenster Jun 21 at 22:29

For a large number of small files rysnc is much faster than scp. They say it's because it has smaller overhead. For one large file, I would expect similar results.

share|improve this answer

For my testing, rsync is faster than scp, you can use iotop to test them on transfering the same file:

sudo iotop -o

Maybe you'll get different result, but you can test them youself. BTW, while using scp, do not foget to choose its cipher by:

scp -c arcfour <source> <dest>

While arcfour can speed up the encryption.

share|improve this answer

Are you re-copying files over existing ones? If so, rsync's ability to block compare and only copy the differences will be relevant.

share|improve this answer

try scp in a fast way

scp -C -o 'CompressionLevel 9' -o 'IPQoS throughput'  -c arcfour machine:file .

these options speed up scp 5 times in my setup compared to plain scp machine:file .

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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