4

I am getting no more than 300KB/s (occasionally dipping below 100KB/s) transferring files from Pi Zero W wirelessly to Windows 7 machine on same network using WinSPC.

I have done the following so far:

  1. check download and upload speed for Pi Zero W (using internet speed test online). This gave 3MB/s down and 2MB/s up. -> this cannot be the problem

  2. during file transfer I monitored the CPU usage of Pi -> never goes above 40%, so this cannot be the bottleneck either.

  3. used a Linux machine in Virtual Box to transfer files directly using SPC command -> same speed, so maybe issue isn't even with WinSPC

  4. chose different protocol, i.e. SFTP (same speed) and FTP (did not work) -> so it's not the FT protocol

  5. reset my router, which resulted in no improvement -> maybe not a router problem

So, are these abysmal transfer rates of 300KB/s expected or should I do better? What else could I try?

Quintin B
  • 689
  • 1
  • 5
  • 20

2 Answers2

1

Is your Windows box connected to the router through wifi or ethernet?

If your PC is not wired in with ethernet to your router then, this could improve the throughput to your pi-zero. If you are copying very large files (1GB+), you should consider directly transferring the files from a linux laptop directly to the SD card.

Measurements of large (1GB+ file) from my laptop to pi-zero:

  • Laptop (wired ethernet) 1.7 Megabytes / sec
  • Laptop (wireless) 0.3 Megabytes / sec
  • Direct write to SD card 8.0 Megabytes / sec

My wireless measurements indicate that a wireless connection is consistent (0.3 Megabytes per sec) with your observations \ measurements (300 KB/S): an unlikely coincidence.

gatorback
  • 637
  • 1
  • 6
  • 21
1

I think the key to your issue is the bolded part of your question that I've included below.

I am getting no more than 300KB/s (occasionally dipping below 100KB/s) transferring files from Pi Zero W wirelessly to Windows 7 machine on same network using WinSPC.

When dealing with anything network related, setting up the initial connection has a massive overhead, especially when it's not a local application downloading something. WinSCP operated by creating a new connection for each file. You didn't specify, but I assume these files are on the smaller side, which means that you're spending more time opening and closing connections than you are actually transferring files.

There's two primary solutions to the issue you're facing.

  1. Adjust the amount of parallel operations that WinSCP is allowed to do. It still has to create a new connection for each file, but you'll get a lot of stuff moved more quickly. I would suggest a setting of 9.

    Preferences > Transfer > Background > Maximal number of transfers at the same time.
    
  2. Before transfering your files, compress them into a zip file (or something better if you're familiar) and then unzip them after transfer. This will allow WinSCP to move all the files in one continuous transmittion and will be the fastest method you have available. Not only is there less connection overhead, you won't have multiple processes on the RPi Zero competing for precious disk IO time.

Jacobm001
  • 11,904
  • 7
  • 47
  • 58