THE INFORMATION IN THIS ARTICLE APPLIES TO:
- EFT Server Enterprise version 6.2 and later
SYMPTOM
Multiple simultaneous Advanced Workflow Engine (AWE) Tasks affect system performance
RESOLUTION
Adjust the maximum number of simultaneous tasks that are allowed to run and the number of simultaneous Advanced Workflow engines that can process the tasks.
Please contact GlobalSCAPE Technical Support for guidance before adjusting these settings.
The following registry DWORD values affect the processing of AWE tasks:
- 32-bit: HKEY_LOCAL_MACHINE\SOFTWARE\GlobalSCAPE Inc.\EFT Server 4.0\AWE
- 64-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GlobalSCAPE Inc.\EFT Server 4.0\AWE
The values are RunningTaskLimit and GSAWEObjectsPerServerInstance.
- RunningTaskLimit controls the total number of AWE tasks that can execute simultaneously.
- GSAWEObjectsPerServerInstance controls the total number of AWE tasks that can run in a given AWE executable instance.
Given the default values, only 3 tasks will run in a single instance of the AWE engine at a time, even if more are called for.
Below is a table showing various outcomes assuming a Folder Monitor operation where 100 files are deposited:
Running | GSAWE | Number | System | Efficiency | Risk of | Explanation and Pros/Cons. |
3 | 20 | 1 | Very | Low | Low | A single AWE engine instance will processes 3 tasks at a time. Low impact on resource but takes longer to process all 100 tasks. |
20 | 20 | 1 | Low- | Medium | Medium | A single AWE engine instances will process 20 tasks at a time. Moderate impact but processes faster. Slightly increased risk of failure due to threading issues. |
40 | 20 | 2 | Med | Med- | Med- | Two AWE engine instances processing 40 tasks concurrently (20 each). Higher impact and 2X memory utilization for GSAWE (engine) process. |
100 | 100 | 1 | Med | High | High | Single AWE engine instance processes all 100 tasks concurrently. Only moderate performance hit but highly efficient processing. Downside is increased risk of failure due to AWE engine threading issues. |
100 | 20 | 5 | Med- | High | Med- | Five AWE engine instances processing 20 tasks each concurrently. Increased impact to resources, great performance, low-moderate risk of threading issues. |
20 | 1 | 20 | High | Med | Zero | Twenty AWE engine instances processing a single task each. Significant impact to resources and memory utilization, moderate performance, zero risk of threading issues. |
100 | 1 | 100 | Very | Very | Zero | Eliminates threading related problems by executing one AWE engine instance for each task. Problem is memory consumption for the up to 100 AWE engine instances. RAM upgrade may be in order. |
So which value should you choose? It largely depends on what you are trying to accomplish and system resources available. Setting values of 50:50 (or 100:100) is highly efficient in terms of executing multiple tasks simultaneously with minimal impact to system resources, but there is an increased risk of failure due to the various task threads exiting completed tasks when other tasks are still being processed or haven’t yet started. If you have the system resources (RAM/CPU), then you may want to set a 10:1 or 20:1 (or higher) for a RunningTaskLimit:GSAWEObjectsPerServerInstance ratio. The result will be processing of many tasks concurrently, but with each task requiring a new AWE engine instance – fast but very resource intensive.
NOTES:
- For these changes to take effect you must stop EFT Server, make the requisite registry change, and then restart EFT Server.
- You may see fewer than the expected number of GSAWE engine instances using process monitor or similar tools while testing. This is likely due to Folder Monitor threads which grow and shrink dynamically. See GSAWEObjectsPerServerInstance.