Organizations depend on their managed file transfer solutions to move their business-critical and often highly sensitive data reliably and securely. To ensure the platform performs under the heaviest of real‑world conditions, rigorous, repeatable, and highly structured stress tests need to be conducted. These tests are designed to push solutions far beyond their typical workloads to validate their resilience, stability, scalability, and ability to recover gracefully from extreme loads.
The benefits of stress testing a MFT solution in general are covered in a previous blog, which discusses how such testing can identify bottlenecks and weak points, how it can validate recovery mechanisms, and more.
This article concentrates on the specifics of stress testing GoAnywhere MFT, and how our Professional Services team offers stress testing services to existing customers.
Let’s take an inside look at how Fortra MFT performs stress testing for GoAnywhere, based on internal methodology, tooling, and engineering practices. “Extensive stress testing helps ensure GoAnywhere MFT remains a robust, scalable, and reliable platform for secure managed file transfer,” said John Tkaczewski Senior Solutions Architect at Fortra. “By putting our solution through rigorous and measurable stress tests, we can confidently attest to its performance for customers and potential customers.”
How Fortra MFT Measures Stress Tests
Fortra MFT uses extensive performance instrumentation to precisely measure the behavior of GoAnywhere under demanding loads. These metrics are captured through Java Management Extensions (JMX) for all GoAnywhere nodes and GoAnywhere Gateway instances.
During a test run, the stress test harness, or software framework used to simulate heavy loads or extreme conditions, collects the following information:
System-Level Metrics
- CPU usage (average & peak)
- JVM heap usage (used & committed memory)
- Thread count (average & peak)
- Samples taken at 15-second intervals across all nodes
File Transfer / Protocol-Level Metrics
- Login latency for each thread (How long it takes to log in to the application while the stress test is running).
- Upload success/failure counts
- Retries and error counts
- Total data transferred
- Overall execution time
- Effective throughput rate
Data Integrity Metrics
With GoAnywhere, each transfer includes an independent MD5 checksum verification to ensure the uploaded file and downloaded file match, validating that high concurrency does not introduce data corruption. Together, these measurements help provide a complete profile of how the solution behaves under heavy concurrent load and also highlight any performance or stability bottlenecks.
How Fortra MFT Creates a Stress Test
“Fortra MFT built a custom utility called the Stress Test Harness, designed exclusively to simulate extreme GoAnywhere workloads,” noted Tkaczewski. “This tool generates traffic, records results, validates integrity, and produces comprehensive reports to provide the data needed to assure our users of reliability, even in the most challenging conditions.”
Key Capabilities of GoAnywhere’s Stress Test Harness
A. Generate Load
- Builds a library of test files (random file names, random sizes, non‑compressible content).
- Alternatively, customers can provide their own data set to use during stress testing.
- Automatically creates hundreds or thousands of test user accounts through the GoAnywhere REST API.
- Spawns new threads—one per concurrent connection—to simulate intense activity.
B. Execute High-Concurrency Transfer Workflow
Each thread performs:
- Upload a random file
- Download the same file
- Perform MD5 validation
This pattern replicates a real customer’s “round‑trip” workflow, ensuring both inbound and outbound loads are represented.
C. Measure and Validate
The harness:
- Connects to all cluster nodes via JMX interfaces
- Records CPU, memory, and thread metrics
- Tracks timing, bandwidth, and connection behavior
- Logs per-thread success and errors
- Outputs a detailed test run summary
D. Cleanup
After testing, all test‑created users, files, and artifacts are clearly labeled, so administrators can remove them at their convenience.
Protocols and Advanced Workflows Fortra MFT Can Stress Test
The stress test harness supports many major GoAnywhere MFT protocols used in enterprise file transfer scenarios, including testing for SFTP (primary focus for high‑concurrency environments), FTPS/FTP, HTTPS/Web Client, and AS2.
For PGP encryption scenarios, stress testing can also be layered onto SFTP + PGP, FTPS + PGP, and Web Client + PGP. PGP may be executed in two possible scenarios:
- Before uploading, where the file is first PGP encrypted by the stress test harness and then by GoAnywhere using a trigger and an Advanced Workflow task to decrypt the uploaded file. The decrypted file is then downloaded for MD5 verification.
- After downloading, the stress test harness uploads an unencrypted file, then GoAnywhere via Advanced Workflows and triggers, encrypts the file with PGP. The PGP-encrypted file is then downloaded by the harness, decrypted, and compared to MD5 verification.
- Skipped—PGP testing can also be skipped if the given workflow being stress tested does not require PGP encryption.
Concurrency Levels (Number of Threads) Used in Testing
Fortra MFT runs tests at increasing levels of concurrency to evaluate scalability and determine how many simultaneous file transfers a GoAnywhere environment can support.
Read More: Growth and Agility Impacts of MFT at Scale
Standard Thread Levels Tested
- 250 threads
- 500 threads
- 1,000 threads
- 1,500 threads
- 2,000 threads
- 3,000 threads
Tests may also be repeated in cycles (often 5 iterations), with short cooldowns between test runs.
The stress test harness can scale up to 3,000 concurrent connections, depending on cluster size and customer request. Single-node environments are not recommended for the highest concurrency tests.
How Number of Threads Translates into File Transfers per Hour
Each thread represents one concurrent file transfer workflow. In our stress‑test harness, each thread performs one full cycle:
- Upload a file
- Download the same file
- Validate data integrity with an MD5 checksum
So, if you run 500 threads, that means 500 upload/download workflows are happening at the same time
A cycle’s duration depends heavily on:
- Average file size (small files = more cycles/hour; large files = fewer)
- Network speed and latency
- Storage throughput
- Encryption configuration (e.g., PGP)
- Server CPU capacity and number of cluster nodes
Here is an approximate mapping from thread count to files/hour.
- 500 threads → ~5,000–10,000 files/hour
- 1000 threads → ~10,000–20,000 files/hour
- 2000 threads → ~20,000–40,000 files/hour
- 3000 threads → ~40,000–60,000 files/hour
This table shows a roughly linear relationship, but with widening ranges as thread count increases. You can think of the number of threads as checkout lanes in a supermarket:
- More lanes mean more customers can check out at the same time.
- However, if each customer has a huge cart (large files), each checkout will take longer.
Why Stress Testing MFT Matters
Stress testing isn’t just about proving raw performance—it validates the total ecosystem, including:
- GoAnywhere MFT servers
- Advanced Workflows and Triggers
- GoAnywhere Gateway
- Database performance
- Storage throughput (EFS, Azure Files, Lustre, etc.)
- Network latency and WAN/LAN routing
- Firewall and load balancer behavior
- Anti-virus (ICAP) impact
- Thread pool and JVM parameter optimizations
By simulating large spikes in traffic, customers can better:
- Understand their cluster’s capacity
- Anticipate scaling requirements
- Tune infrastructure settings
- Catch bottlenecks before they appear in production
- Build confidence that GoAnywhere will perform when it matters most
Stress Testing MFT as a Service
If you’d like a stress test performed on your GoAnywhere environment or want additional help interpreting what cluster size is needed for your requirements, you can utilize our Professional Services team.
The MFT experts on our Professional Services team can help set up Stress Testing packages to help your organization step through the logistics of building out your production system ensure it meets and/or exceeds your expectations for file transfer automation and growth.
- Setup and testing will take place over a period of days or weeks and will be dependent on criteria such as access, file sizes, bandwidth, memory, and CPU.
- Timing could also play a factor as additional processes being executed on your network could affect the outcome of the transfer performance.
The consultant will help you identify the potential bottlenecks and, more importantly, help you logistically work through those items and test against your existing setup/configuration. Keep in mind, this entails testing on a NON-PRODUCTION system, and several restarts or memory changes could take place. Also, exceeding the limits of your configuration could lock your system or shut it down. A consultation will help mitigate these situations.
Stress Testing is Critical to Meet Demanding Real-World Workloads
“The stress testing framework for industry-leading GoAnywhere MFT is thorough, methodical, and engineered to replicate even the most demanding real‑world customer workloads,” said Tkaczewski. The stress testing recommended and facilitated by the solution’s Professional Services team combines:
- A powerful custom load-generation harness
- Detailed JMX-based performance measurement
- Multi-protocol testing
- Controlled high‑concurrency simulations
Evaluate your architecture against enterprise‑grade load scenarios.
Our specialists can help you benchmark, test, and fortify your file transfer system.