Load Testing Managed File Transfer Applications

Discusses why you need a load tester for your managed file transfer server and how to do a load test.
  1. Blog

Note: This article was originally published on Dec 9, 2011 but was updated and republished on September 4, 2018.

Overview

Load testing is one activity that can help you in making sure your managed file transfer services are always in optimal conditions. In this post, we'll elaborate more about the importance of load testing and then talk about how JSCAPE MFT Monitor can enable you to gain insightful information from the load tests you run with it.

Prefer to watch a video of this article instead?

Play the video below or just proceed.

Importance of load testing file transfer services

When you're operating a managed file transfer server, it is important to know the limitations of your system before those limits are breached. That way, you can assure high availability and avoid having to face either irate end users who just had one-too-many failed connections or, worse, a major disruption resulting from a system overload.

For instance, if you know that, given certain conditions, your system can only handle 1000 users downloading and uploading files at the same time, then you can limit the number of concurrent users to a number wherein acceptable or even optimal performance is assured.

This is particularly important if you're running a managed file transfer server like JSCAPE MFT Server, which can support a lot of security and automation-enabling features. A typical JSCAPE MFT Server admin may be tempted to enable a number of features like automatic FTP virus scanning, OpenPGP encryption, email notifications, and others, which can really help enhance security, efficiency and administration of file transfers but of course also need more system resources.

Being able to conduct load tests can help you determine how your server would react if certain features are enabled. Let's say you want to automatically protect each user's uploaded files with the OpenPGP encryption feature. If you already know that your organization's file transfer activities can easily hit 500 concurrent users at any given day, then you will want to run tests on your server first under those conditions before actually deploying the server.

Or, when you set out to choose a virus scanner solution for your automatic FTP virus scanning operation, for example, you might want to test each of your favored antivirus solutions first before actually deciding which one to buy. Normally, when people choose a virus scanner, they only focus on ease-of-use and the number/types of viruses the scanner can detect. With a load tester, you can now simulate concurrent connections and add CPU and memory consumption as another criteria for comparison.

There can be several other use cases. In fact, I used a series of load tests to compare the connection times of 1024, 2048, and 4096-bit encryption keys, the findings of which I published in the blog post "Choosing Key Lengths for Encrypted File Transfers".

Eliminate guess work

The estimates you make regarding your managed file transfer system's limitations should not be obtained from pure guess work. Otherwise, it would lead to system resource allocations that may be way too much or way too little. Or you could end up setting limits to your end users that are either way too conservative or too bloated.

In order to help admins make estimates that are as realistic as possible, we came up with a solution called JSCAPE MFT Monitor.

This is a platform-independent load testing and monitoring application. That means, you can run it on Windows, Linux, Mac OS X, Solaris machine and other platforms.

JSCAPE MFT Monitor's load tester

A JSCAPE MFT Monitor load test will allow you to test the load capabilities of your secure file transfer server by enabling you to simulate a variety of simultaneous upload and download scenarios wherein you can change certain variables such as the file size, number of users, and the amount of time before the next user performs an upload/download (a.k.a. "ramp up period").

Of course, if you set the application to simulate a large number of concurrent users, then there's going to be a big chance the server will encounter a surge in CPU and memory consumption. The effect can be made even more evident if you make the ramp up period as small as possible.

Let's have a quick look at how a load test looks like now.

To do a load test, you need to create what we call a "monitor". To do that, go to the Monitors module and click the Add button.

adding a monitor for load testing

You will then be asked to specify a file transfer protocol, which will then be used to transfer test files during the load tests. Use a file transfer protocol that your users actually use to exchange files with your file transfer server. Here, I've selected SFTP but you can choose from the following options as well: FTP, FTPS, FTP/Implicit SSL, AFTP.

sftp server protocol for load testing

After clicking OK, you'll be brought to the Add ... Monitor dialog, where you'll have to enter information needed for the load test. Start by entering a name for the monitor, the IP address or hostname of the file transfer service whose performance you would like to test, and the corresponding port number. The Private Key section is for load tests on SFTP servers that require public key authentication.

add sftp monitor for load test

If you scroll down a bit more, you'll reach the Access section, where you can enter a username and password (if you just want to authenticate using a single user). Alternatively, you can also upload a list of usernames and corresponding passwords via the Upload credentials file option.

ftp monitor access username password

Notice what you've seen so far are just connection settings, which will enable you to connect to the SFTP service you want to run a load test on. The main load test parameters are found in the Load/Alerts section, specifically in the dialog box that appears if you click the first of two Settings buttons.

load test settings

The settings inside the dialog named "Load Settings" are the variables I mentioned earlier. You can also ask the program to create a dummy file of a specified size (or you can select your own), which will then be used in the simulated upload/download sessions.

load test settings dialog

Once the required fields have been entered, just click the OK button. You can start the test immediately or just save for later. Assuming you just saved it, you can run the test at a later time by going to the Monitors module, selecting your desired monitor, and then clicking the Start button.

start a load test

When the test is done, the result will be displayed in the Results tab. To view a specific test result, just select it from the list and then click View. You can also simply double-click it.

view load test result

Here are some average values of a load test I took wherein I simulated 50 users downloading and uploading a 1MB file each with only a 1 millisecond ramp up period.

load testing summary upload speed download speed-1

Here's a graph of the same test showing the upload speeds experienced by each 'client'.

load testing upload speed graph-1

Here are those same reports. But this time, I configured my JSCAPE MFT Server to automatically PGP encrypt each file that got uploaded and then to automatically send me an email notifying me of each upload/encryption.

load testing summary upload speed download speed with email and encryption triggers

load testing upload speed graph with encryption and email triggers

When used alongside your server's system monitoring tools, a JSCAPE MFT Monitor load test can help you obtain even more useful information for managing your MFT Server.

Here's the CPU performance on my Windows Task Manager while running a load test of 50 users and a 1 ms ramp up period:

load testing cpu performance file transfer only

Now, here's what I got when I enabled PGP encryption and email sending:

load testing cpu performance with encryption and email

The surge in CPU usage on both screenshots indicate the time when the load tester is interacting with the server and upload/downloads are being made. If you notice, in the second screenshot, the CPU is busier for a longer period time. That's because, in the second scenario, PGP encryption and then email sending has to be performed after each file gets uploaded. The CPU usage rises and remains at a higher level before dropping. This is the period when some files are being encrypted, notifications are being emailed, and more files are coming in, all at the same time.

I'm pretty sure you have a lot of ideas yourself as to what kind of information you want to monitor while running these tests. At any rate, this article should get you started.

Summary

You've just learned why it's important to carry out load tests on your managed file transfer services. You also now know what tool can help you carry out those tests. Still not sure whether you really need it? Why don't you download the free and fully functional starter edition of JSCAPE MFT Monitor and give it a test run?

Downloads

JSCAPE MFT Monitor