EldoS | Feel safer!

Software components for data protection, secure storage and transfer

FTPS Server Performance

Also by EldoS: MsgConnect
Cross-platform protocol-independent communication framework for building peer-to-peer and client-server applications and middleware components.
Posted: 10/02/2013 10:02:27
by Kenny Munro (Standard support level)
Joined: 11/20/2012
Posts: 5


I'm in the process of developing an FTP server using the FTPS Server Component. I've been doing some comparative performance testing between our implementation, your sample FTP server and a 'reference' FTP server (FileZilla server in this case)

Results seem pretty consistent between our implementation & your sample giving us download speeds of approximately 11-12 MB/s. Filezilla, however, is managing 22-23 MB/s - that's for the same file, same hardware, same client etc.

I realise that a managed app is never going to achieve the same throughput as a native one (I assume FileZilla server is a native app) but I'm surprised the performance loss is so large especially when you consider that FTPS client component can manage to more or less match native clients in terms of throughput.

Performance is very important to us (we're moving very large video files) so I'd like to know whether there is anything that we can do to improve performance inside our code. I'd also be interested to know whether you've performance tested and optimised the FTPS server component internally and what sort of speeds you've been able to achieve with it.

Best regards,
Posted: 10/02/2013 10:11:04
by Mykola Olshevsky (Basic support level)
Joined: 07/07/2005
Posts: 450

Hi. Do you use SSL/TLS? And, what's the performance of our sample server (or are you using it)?
Posted: 10/02/2013 10:15:57
by Kenny Munro (Standard support level)
Joined: 11/20/2012
Posts: 5

No SSL or TLS - we're trying to build a straight unencrypted FTP Server.

Your sample server is giving essentially the same performance levels as our implementation - in a range of 11-12 MB/s against 22-23 MB/s for FileZilla Server.
Posted: 10/02/2013 10:19:39
by Eugene Mayevski (EldoS Corp.)

FTP is quite straight protocol and the main bottleneck is how your code works with sockets. Our sample and TElSimpleFTPSServer are quite straightforward in their socket operations. I can imagine that using IO Completion Ports (IOCP) on Windows can boost performance, also socket buffer adjustment can be the factor as well.

While we don't have short-term plans for IOCP sockets, there will be certain improvements regarding buffers made in SecureBlackbox 11 and later in SBB 12.

Sincerely yours
Eugene Mayevski
Posted: 10/02/2013 10:26:05
by Kenny Munro (Standard support level)
Joined: 11/20/2012
Posts: 5

Are there any buffer adjustments we can make in the current release?
Posted: 10/02/2013 10:37:22
by Eugene Mayevski (EldoS Corp.)

Not in TElSimpleFTPSServer. If you use TElFTPSServer, you can work with sockets yourself, adjust socket buffers and implement connection polling etc in more efficient way.

Sincerely yours
Eugene Mayevski
Posted: 10/02/2013 14:53:09
by Kenny Munro (Standard support level)
Joined: 11/20/2012
Posts: 5

OK thanks, I think I might need to stick with what I have for now as it's working and client delivery is not far away!

In the longer term, I'll look at rolling our own using the ElFTPSServer component. Is there a sample implemented anywhere using this component? Looking at the documentation it's not immediately obvious how to use it!
Posted: 10/03/2013 01:02:34
by Vsevolod Ievgiienko (EldoS Corp.)

Is there a sample implemented anywhere using this component?

Currently the best sample is TElSimpleFTPSServer source code.
Also by EldoS: CallbackRegistry
A component to monitor and control Windows registry access and create virtual registry keys.



Topic viewed 1013 times

Number of guests: 1, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!