System Optimization / Performance Calculations |
The following data provides some insight into how a faster workflow engine can increase capacity. The following scenario involves a process running an AgilePart calling a Web Service through the Internet.
On an average server:
Average event processing time is 551ms/event. Thread pool size = 10.
From activity to activity requires 3 events, hence 1 activity = 3 events.
Assuming one process instance contains 30 activities, and the tasks under each activity are completed immediately once assigned (no waiting time).
Time needed to complete 1 process using 1 thread:
= 551 ms/event x 3 event/activity x 30 activity/process
= 551 x 3 x 30 (ms/process)
Number of processes that can be completed in 1 day using 10 threads:
= Total time available in 24 hours (ms) x Thread pool size
Time needed for 1 process (ms/process)
= 24 hours/day x 60 min/hr x 60 sec/min x 1000 ms/sec x 10 threads
551 x 3 x 30 (ms/process)
= 17, 422 process/day
Same process on a faster server (Xeon 3.6 * 2):
The average event processing speed is 321(ms)/per event.
Thread pool size = 50.
Total processes that can be completed in 1 day
= 50*24*60*60*1,000 / 321*3*30
= 149,533 process/day
The formula is:
Total processes that can be completed in 24 hours:
= [Thread pool size]*24*60*60*1,000/[Average event processing time]*3* [Number of activities
per process]
Or
Average event processing time
= [Thread pool size]*24*60*60*1,000/[Total processes that can be completed in 24 hours]*3*
[Number of activities per process]