THE INFORMATION IN THIS ARTICLE APPLIES TO:
- EFT Server Enterprise version 6.2 and later
- EFT v4.x to v7.4.x stores advanced properties in the registry.
- EFT v8.x stores Advanced Properties in a JSON file.
- When you upgrade from EFT v7.4.x to EFT v8, the non-default settings that you have defined in the registry will be added to the Advanced Properties file during upgrade. (Default settings are part of the EFT configuration files.)
Please refer to the EFT help for a spreadsheet of advanced properties for your version of EFT.
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 values affect the processing of AWE tasks:
- 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.
- GSAWEMaxiumQueuedTasks controls the maximum number of AWE tasks that can be queued before dropping new tasks. 0 = no limit (the default). If you set it for 20, for example, and there are 20 tasks queued, no other tasks will be run until the queue is available.
- Prior to v8.x, create the values in the registry: DWORD: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GlobalSCAPE Inc.\EFT Server 4.0\AWE
- In v8.x and later, add the values to the AdvancedProperties.JSON file.
{
"RunningTaskLimit":20
"GSAWEObjectsPerServerInstance":1
"GSAWEMaxiumQueuedTasks":20
}
- 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:
3 (default prior to v7)
|
20 (default prior to v7)
|
1
|
Very low
|
Low
|
Low
|
A single AWE engine instance processes 3 tasks at a time. Low impact on resource but takes longer to process all 100 tasks.
|
In EFT v7 and later, the default is 10
|
In EFT v7 and later, the default is 1 |
10 |
Med
|
Med |
Zero |
EFT will run 10 AWE tasks concurrently, each in their own GSAWE.exe engine |
20
|
20
|
1
|
Low-
med
|
Medium
|
Medium
|
A single AWE engine instances processes 20 tasks at a time. Moderate impact but processes faster. Slightly increased risk of failure due to threading issues.
|
40
|
20
|
2
|
Med
|
Med-
high
|
Med-
high
|
Two AWE engine instances processes 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
|
High
|
Med-
high
|
Five AWE engine instances processes 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 processes a single task each. Significant impact to resources and memory utilization, moderate performance, zero risk of threading issues.
|
100
|
1
|
100
|
Very
High
|
Very
high
|
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 the EFT Server service, make the requisite registry change, and then restart EFT Server service.
- 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.