I have a Model B Raspberry Pi, attached to a wired network. It has Raspbmc installed. It also has an expernal USB drive for storage.

I also have a laptop, attached to a wireless network. These two networks are connected.

When I download something using the Pi, it maxes out my internet connection (approx 900 kb/s). The USB drive can easily keep up with this.

When I download something using my laptop, it maxes out my internet connection as well.

So both devices are able to achieve these network speeds. However, when I copy something from my laptop to my Pi, it maxes out at about 160 kb/s. For copying, I use WinSCP.

Even if the router were very inefficient, I would expect at least 50% of the speed the machines can download with.

Why is this speed so much lower? How can I identify what's killing my speed here?

  • Can you look at the Command top? How much CPU power is left when transferring the file?
    – Laurence
    Commented Dec 7, 2012 at 14:43

2 Answers 2


Since you use WinSCP, I assume that the transfer is secured by SSH. I heard that SSH can be CPU-intensive and can slow down your transfer.

To know whether SSH is guilty, I suggest to test the raw data transfer speed between your laptop and your RPi with iperf.

Install iperf on both your laptop and your RPi. One will be the server and the other one, the client.

First, on the server, run:

$ iperf -s

Then on the client, run:

$ iperf -c <server's IP>
  • Thanks, I'll have a look when I get home! The connection WinSCP makes is indeed secured by SSH, so it might well be. Commented Dec 6, 2012 at 15:15
  • Apparantly, the CPU was the bottleneck. Transfers going up to nearly 2MB/s, probably only slowed down by my wifi connection now. Thanks! Commented Dec 8, 2012 at 15:43
  • @RenéWolferink: Thanks for your feedback. Can you confirm that when you use WinSCP/SSH, the RPi's CPU is fully loaded (using top as Laurence suggested)? Commented Dec 8, 2012 at 21:07
  • I didn't check the CPU, I tried unecrypted transfer, but I'll have a look when I get home again. Btw, I used nethogs for measuring transfer speeds, nice tool. Commented Dec 10, 2012 at 8:53

SSH is a cryptographic network protocol for secure data communication, I guess that the CPU of the PI is not powerful enough to get high speeds. You could look at the output of the command "top". That way you can determine if the CPU is the bottleneck.

Use a FTP server instead, I get the transfer speed of 12.5 MB/S to my PI.

  • 1
    I assume that you use SSH
    – Laurence
    Commented Dec 7, 2012 at 14:50
  • I myself using a nfs server on raspberry and downloading it to my linux Desktop. I doubt thats easily possible on Windows, but for other users out there wanting advice :)
    – keiki
    Commented May 6, 2014 at 17:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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