10

the interface is handy but the file transfer rate is freakishly slow compared to pscp or scp in my VM on the same windows machine. i'm only getting about 17kb/s when my overall connection speed can go up to about 1Mb/s (what i've seen not what my provider tells me they're giving me) and i'm pretty sure i've connected to the same computer at much higher speeds before

7 Answers 7

9

You might find the File transfer speed FAQ on the WinSCP site useful, I'll provide the basics:

The SSH code of WinSCP is based on PuTTY, so file transfers with the SSH-based protocols cannot be expeceted to be faster than PuTTY. So it might be worth trying a file transfer with PuTTY directly to see if it is comparable.

As well as bandwidth, they suggest that there are two common limiting factors in overall connection speed for WinSCP: CPU and Connection Latency.

CPU

Is important because everything that is sent has to be encrypted at one end and decrypted at the other (and potentially compressed as well if that is enabled). If either machine is slow enough (or happens to be working on other things) the overall connection speed will have to be reduced so that CPU can keep up with the encryption / decryption / compression procedures.

The suggestion here is to use a less intensive encryption method (they suggest that using Blowfish is usually faster than AES), try disabling compression and try moving down to SSH-1 if using SSH-2.

Connection Latency

They suggest trying the SCP, protocol instead of SFTP, as SCP is less affected by latency (and they suggestion turning on compression in this case).

2
  • 1
    I just did a test of WinSCP vs. psftp (putty's sftp program). Transferring a 500 megabyte file across my home LAN took < 1 minute with psftp. It took about 4 minutes with WinSCP.
    – Dan Pritts
    Dec 1, 2012 at 3:30
  • In addition to seeing similar behavior as @DanPritts (45 MiB/s over gigabit link via psftp vs 12-20 MiB/s via WinSCP), I am able to get faster speeds out of BitVise Tunnelier than either psftp or WinSCP (52 MiB/s) despite it using "slower" algorithms (aes256-ctr, hmac-sha2-256).
    – kbolino
    Nov 15, 2015 at 17:12
1

See if you have a hard limit in 'transfer', in "preferences/Other preferences". Could happen if that machine have been used/configured by someone else. The VM config could be affecting, too.(or intermediate nodes)

1

For interest we switched from aes to blowfish and went from 250kb/s to 2mb/sec

our winscp script.txt

# Automatically abort script on errors
option batch abort
# Disable overwrite confirmations that conflict with the previous
option confirm off
# Connect using a password
open sftp://user@pass@server -rawsettings Compression=1 AgentFwd=1 SshProt=1 Cipher=blowfish,aes,3des,WARN,arcfour,des
# Change remote directory
cd /x
# Change local directory
lcd /y
# Force binary mode transfer
option transfer binary
# synchronize
synchronize remote -criteria=size \x /y
#done
exit

with the batch file

"c:\Program Files (x86)\Winscp\winscp" /script:script.txt %1 %2 %3 %4 %5 %6 %7 %8 %9
1

The best advises given on FAQ - WINSCP SPEED, PLUS - update the WINSCP to latest version.

quote:

When using SSH, file transfers in WinSCP are encrypted and it's CPU intensive. Blowfish is usually a lot faster than AES (so,try BLOWFISH). It may also help if you turn off compression, if you have turned it on before.

In case the speed is throttled by connection latency, it may help if you use SCP protocol instead of SFTP. SCP is less affected by latency. In this case, it may help if you turn on compression.

1

Use the IP address rather than the domain name when specifying host!

I had 150 KiB/s transfer speed despite transferring between same machines over torrent was 10+ MiB/s. After googling for a while, I got a hint on a forum that I should try specifying the IP address of my server rather than the domain name, I tried that, and voila:

enter image description here

It's now transferring full-throttle of my network capacity, hooray!

1

In my case, I was trying to transfer a few thousand small files (1-5KB) over WinSCP from a Linux box (with about ~80ms ping). (I know I should have tar+gzipped them first, but this was an ad-hoc thing)

The transfer speed for large files was decent enough (100mbps+), but trying to download thousands of small files causing a bottleneck and it felt like I was getting an effective transfer rate around ~100kbps) when using the default settings in WinSCP - it took over 10 minutes just to download ~25MB.

I saw @S.gfx's answer, but my WinSCP Preferences didn't have any kind of Transfer limit or Bandwidth limit, but I did see the "Maximal number of transfers at the same time" setting was set to just 2 (by default).

After I raised the limit to 8 (even while still downloading those files in the background) WinSCP loosened-up and started opening more download channels and soon enough my ~100kbps went up considerably and the whole download job was finished about 30 seconds later.

enter image description here

0

What worked for me:

  1. Open a PuTTY terminal via WinSCP.
  2. Hover over PuTTY icon in the taskbar and right-click on the preview -> Change Settings PuTTY WinSCP Slow Upload Fix
  3. Connection > SSH > Uncheck Compression (if checked)
  4. Connection > SSH > Cipher > Move Blowfish up the list

Back to 10+ MiB/s compared to 50kb/s

PuTTY WinSCP Slow Upload Fix

P.S. You may need to do the same in WinSCP - Edit > Advanced > SSH > Disable Compression > Move Blowfish up

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .