sftp slow uploads

0 votes
asked Mar 3, 2011 by Larry (120 points)
edited Jul 12, 2012

I am having a issue with slow uploads & SFTP.

I have tried disabling the Zlib http://forum.rebex.net/questions/61/file-upload-with-rebex-sftp-isnt-working-properly

I have also tried

client.Options |= SftpOptions.UseLargeBuffers;

I can't seem to break 1mbps, wheras filezilla and other clients upload around 6-7mbps with my internet connection.

I am using Windows 7 Pro 64bit both .NET 4 & 2.0 versions of the DLL. Also tried on three different machines.

Strange result is using a Vmware virtual machine which is Win7 64 bit I get 4mbps upload with Rebex 4.0 framework sftp dll. This virtual machine is on the same host running Win7 which is one of the ones that is slow uploading.

In short why would a virtual machine upload so much quicker then the host machines..

I am using DU meter to determine the bandwidth during the transfers, and the server is a CORE FTP. The internet connections are on the server side 100mpbs, and FIOS 25/25 client.

Applies to: Rebex SFTP
commented Mar 3, 2011 by Lukas Pokorny (126,870 points)
Most of us at Rebex use Windows 7 Pro 64bit as well and the speed is much closer to other clients. It looks like something is wrong, somewhere and your results with Vmware confirm that (what speed do you get using the Vmware machine wth Filezilla?)Would it be possible to setup a test account for us at your SFTP server? If you are able to reproduce this on 3 diferent machine, we should be able to do it as well and easily analyze the results.
commented Mar 3, 2011 by Lukas Pokorny (126,870 points)
ZLIB is disabled by default in the current release. Is there any difference in sped with UseLargeBuffers option enabled vs disabled?

2 Answers

0 votes
answered Mar 4, 2011 by Larry 1 (140 points)
edited Apr 4, 2011

Thanks for your reply. FYI dll ver: v4.0.30319

1)Filezilla inside the Virtual machine is uploading between 5-6mbps

2)Filezilla on the host machine(s) same results 5-6mbps

3)Rebex on the host less then 1mbps Win7 64

4)Rebex on the virtual machine ~4mbps. (An the virtual machine is on the same host getting the slow speeds, network adapter is bridged) Win7 64

5)Tested on my laptop windows 7 64bit <1mbps

6)Tested on another host machine Windows 7 64bit <1mbps

I have a test account ready to go if you want to test I suppose you can send me a private message to exchange those details? I have also tried changing the receive window size on the server, and the UseLargeBuffers does not seem to make any change in speed either way.

code I am using for the test:

Sftp client = new Sftp();
client.Options |= SftpOptions.UseLargeBuffers;
client.Login("u", "p");</p>

client.PutFile(@"c:\temp\test.bin", "test.bin");
commented Mar 7, 2011 by Lukas Pokorny (126,870 points)
I just sent you an e-mail and I'm awaiting your response. I hope we can solve this soon!
0 votes
answered Jul 6, 2012 by al duhuez (340 points)
edited Jul 12, 2012

Was this resolved? I am curious as I am evaluating Rebex SFTP and see the exact same scenario.

commented Jul 9, 2012 by al duhuez (340 points)
edited Jul 9, 2012

I sorted it out, I switched to use GetFile() instead of GetDownloadStream(). Now both the download and upload are fast.

commented Jul 12, 2012 by Lukas Pokorny (126,870 points)
edited Jul 12, 2012

Thanks for letting us know! GetDownloadStream() and GetUploadStream() methods are not optimized for speed and when working with small blocks, they can be really slow (because they don't read/write multiple subsequent blocks in advance). Wrapping GetDownloadStream() into System.IO.BufferedStream might enhance the throughput a bit, but it still won't be nowhere as fast as GetFile()/PutFile() methods (which were optimized for speed).

commented Jul 12, 2012 by Lukas Pokorny (126,870 points)
edited Jul 12, 2012

Regarding the slow PutFile in the oritinal post - we were never able to reproduce this ourselves. It is probably caused by some unusual combination of client, server and networking setup.