Slow WinSCP transfer speeds when connecting to a FTPS server

Advertisement

pistacho
Joined:
Posts:
6

Slow WinSCP transfer speeds when connecting to a FTPS server

I'm connecting to a FileZilla Server v0.9.60beta using FileZilla Client v3.40.0 and WinSCP v5.13.0.8172, in both cases with an implicit FTPS connection.

When I download an ISO image (which is around 4GB) from the server I get around 70MBps of download speed (which actually is the maximum upload speed of that server) with FileZilla client. However, if I download that same file using WinSCP I only get around 30MBps.

I've read at WinSCP FAQ that unchecking "Optimize connection buffer size" has helped some people to improve their speeds, however this checkbox is checked but disabled (greyed out) when I use an implicit FTPS connection, so I guess that setting only applies to SFTP and SCP connections.

I've also tried some other releases of WinSCP (versions 4.3.3, 4.3.9, 5.7.0, 5.9, 5.11, as well as the latest 5.14.4RC), but almost all of them seem to behave exactly the same. Curiously enough, the oldest one (version 4.3.3) reaches around 40MBps, which is 10MBps higher that the newer versions of WinSCP, but still well below FileZilla client.

Just to verify if the client was the limiting factor, I've used also cURL to download the very same ISO file from the same implicit FTPS server, and I'm also getting speeds around 70MBps (just like FileZilla client). That suggest that the client seems to be the key in this issue.

Is there anything I can try to improve the download speed when connecting to a FTPS server using WinSCP?

Thank you very much.

Last edited by pistacho on 2019-02-19 12:20; edited 1 time in total

Reply with quote

Advertisement

martin
Site Admin
martin avatar
Joined:
Posts:
31,949
Location:
Prague, Czechia

Re: Slow WinSCP transfer speeds when connecting to a FTPS server

Can you test the speeds without an encryption?

Reply with quote

pistacho
Joined:
Posts:
6

I've tested the same transfer without encryption, and WinSCP v5.13.7 reaches up to 70MBps. It starts downloading at arround 55MBps, and in a matter of 10 seconds or so, it raises to 70MBps.

Curiously enough, FileZilla Client starts at 65MBps at reaches 70MBps in a pair of seconds.

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
31,949
Location:
Prague, Czechia

OK, so it's probably a CPU-bound problem. Can you confirm that one the CPU cores is maxed during the transfer?

Reply with quote

pistacho
Joined:
Posts:
6

Well, it seems not to be CPU related because both WinSCP and FileZilla Client take only around 20% of the CPU (in varies between 12% and 22%) when using an implicit FTPS connection, and on the other side (in both cases) FileZilla Server is taking also a similar percentage of the server's CPU.

I thought the crypto suite used for TLS connection could be different in both clients, so that could explain the difference in performance, but it looks like both clients are using the same algorithms, specifically:

WinSCP FTPS (FTP over TLS, implicit)
Cryptographic protocol = TLS/SSL Implicit encryption, TLSv1.2
Encryption algorithm = TLSv1/SSLv3: ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA, ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD

FileZilla Client FTPS (FTP over TLS, implicit)
Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-256-GCM, MAC: AEAD

So, the plot thickens. [DRAMATIC CHIPMUNK MUSIC PLAYS] 8¬)

Any other ideas about what could be causing this differences?

Last edited by pistacho on 2019-02-26 12:00; edited 1 time in total

Reply with quote

Advertisement

pistacho
Joined:
Posts:
6

Just a tip, which may not have anything to do with this case. I also use a tool called FreeFileSync, which allows you to synchronize some pairs of directories. The most recent versions are able to connect to a FTPS server and sync against that server too. However, the latest version has boosted its transfer speed when you sync to a FTPS server, and it's related to the underlying libcurl library that it uses, which has been updated.

Regarding to your question, as my CPU has 4 cores, I guess a full core would represent a 25% of total processing power, and we could take that as an approximation for the estimated 20% I mentioned.

However, this makes me wonder the following:

1) If the CPU is the limiting factor, why does the usage percentage fluctuate? I mean, I would argue that a demanding task would request a constant %CPU power processing (as much as it could get). In this case I would expect a full core (a 25% of the total) to be fully occupied while the task is running. I don't understand why it constantly varies from a 12% to a 22%.

2) If both WinSCP and FileZilla client use the same full core in the same machine, why does the later saturate the download bandwidth, while the former doesn't?

3) Why does a previous version of WinSCP (version 4.3.3) perform better than the current one (the ancient one reaches 40MBps while the latest only gets 30MBps)?

4) Related to the previous point, and as the tip at the beginning of this post suggests, could the crypto libraries that WinSCP is using be the root cause to this issue?

Thank you martin for your patience helping me to track this down.

Reply with quote

glenhall
Joined:
Posts:
4
Location:
uk

on multiple machines I find winscp slower transferring over ftps than either flashFXP or filezilla (they always download at the full speed of the server im receiving from), CPU certainly doesn't seem to get hammered. and i thought after seeing this post https://winscp.net/forum/viewtopic.php?p=90151#90151 it was related to the optimize connection buffer but this is related to different protocol so im not sure what it is, but i do prefer the interface and features of winscp, so most of the time i just suffer with the slower speeds.
an example is when I download from my home a crap 3MB/s using filezilla, but using winscp, the same file 900KB/s

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
31,949
Location:
Prague, Czechia

pistacho wrote:

1) If the CPU is the limiting factor, why does the usage percentage fluctuate? I mean, I would argue that a demanding task would request a constant %CPU power processing (as much as it could get). In this case I would expect a full core (a 25% of the total) to be fully occupied while the task is running. I don't understand why it constantly varies from a 12% to a 22%.
Hard to tell.

2) If both WinSCP and FileZilla client use the same full core in the same machine, why does the later saturate the download bandwidth, while the former doesn't?
Better implementation of the encryption. Or better compiler. Or inferior encryption used by FileZilla (unlikely).

3) Why does a previous version of WinSCP (version 4.3.3) perform better than the current one (the ancient one reaches 40MBps while the latest only gets 30MBps)?
Inferior (less CPU demanding) encryption algorithm used by 4.x

4) Related to the previous point, and as the tip at the beginning of this post suggests, could the crypto libraries that WinSCP is using be the root cause to this issue?
Possibly. Or a less efficient compiler.

Reply with quote

Advertisement

You can post new topics in this forum