Home Tweaks • Increase transfer speeds via SCP / Rsync

Increase transfer speeds via SCP / Rsync


Since the processor in a NAS system is not designed to do encrypting (like x86 has instruction sets for it), standard copying via SSH or Rsync can give horrible speeds.

For example, on my EDMini i get speeds up to 1,4 Mb/sec and on my Networkspace2 i get 3,4 Mb/sec. Since these are horrible speeds to achive, even Samba gets higher speeds, it’s wise to think about the type of encryption used between 2 machines.

Since i need to copy/move alot of data via my NAS and my home server (all same home network), I do not need 128-bit encryption. There is a “NONE” encryption type, however, that does not seem to be supported both on my NAS and server. Then there is the lowest type of encryption called “Arcfour”, which will be used from now on between my 2 machines.

To start a SCP transfer with this encryption type, do (does not matter if it’s from NAS to server or the other way around):
scp -c arcfour FILENAME user@machine:/directory/

For rsync:
rsync -e 'ssh -c arcfour' FILES user@machine:/directory/

With FILES being the directory, files or * you want to copy and user@machine being the user and host copying to and /directory being the target directory. Be sure to check out the manpages for the commands for more info:
man ssh
man scp
man rsync

When using this encryption type I get up to 3,5 Mb/sec on my EDMini and up to 8 Mb/sec on my Networkspace2!

There is also the -C flag, that enables compression, but as you can imagine, that gives a huge load on the CPU to encrypt and compress as well, so it’s best not to use that option on your NAS!

In Tweaks

Author:Jeffrey Langerak

4 responses to “Increase transfer speeds via SCP / Rsync”

  • Chris 08-03-2011 at 21:28 Reply 

    I use duplicity to create the encrypted deltas and then rsync with zero encryption. Seems to work quite well.

    • langerak 09-03-2011 at 11:00 Reply 

      Thanks for the tip, I’ll check that out :)!

  • Jan 18-04-2011 at 21:15 Reply 

    If you use openssh, a handy feature is the .ssh/config file (see man ssh_config)
    If you put something like this there, you will never forget to set the cipher 🙂 :

    Host lacie
    User jvhaarst
    Ciphers arcfour,blowfish-cbc,aes256-cbc,aes256-ctr
    Compression no

    • langerak 19-04-2011 at 11:20 Reply 

      Thanks for your comment! I’ll update my post with your supplied information :).

Leave a Reply

Your email address will not be published. Required fields are marked*



This site uses Akismet to reduce spam. Learn how your comment data is processed.