ActiveVOS Performance Tuning Technical Note V1.2 AN ACTIVE ENDPOINTS TECHNICAL NOTE 2011 Active Endpoints Inc. ActiveVOS is a trademark of Active Endpoints, Inc. All other company and product names are the property of their respective owners. 2011 0
Content Introduction... 3 System under Test... 3 Configuration Parameters... 4 Test Results... 5 Other Parameters Influencing Throughput... 5 Learning how to configure ActiveVOS Server... 6 Summary/Conclusion... 6 About Active Endpoints... 7 Copyright 2011. Active Endpoints, Inc. Page 2 of 7
Introduction This Technical Note contrasts server configurations with the goal to demonstrate the effect of configuring the allocation of resources and its effect on performance. The report concludes that higher allocation of memory and database resources will result in higher throughput. System under Test Two configurations are used to depict the performance characteristics. The system under test is depicted here. Load was generated using the SoapUI client generated requests to the ActiveVOS Server. For each request submitted to ActiveVOS a new process instance was created which in turns invoked web services executing on a separate application server. A database (running on a separate server) provided persistence of process instance state. Copyright 2011. Active Endpoints, Inc. Page 3 of 7
Configuration Parameters Component Settings Comments ActiveVOS can be tuned in various ways to balance available resources with performance requirements. SoapUI (2.5.2) Memory allocated to the JVM JDBC ActiveVOS Load Test Threads (virtual users) Configured via JAVA_OPTS parameter JDBC Connection pool (min/max) Process persistence Process logging Number of worker threads (min/max) The number of threads controls the number of virtual users. Each virtual user can generate parallel message load to the ActiveVOS server. For example, if you set the Load Test Threads to 10, you would have 10 virtual users generating requests to the ActiveVOS server simultaneously. ActiveVOS performs faster with more memory allocated The JDBC connection pool min/max controls the number of simultaneous JDBC connections to the database. ActiveVOS leverages resources from the JDBC connection pool. The persistence of data (e.g. to allow recovery) to the database impacts performance Process logging (e.g. to allow for process rewind) to the database impacts performance ActiveVOS engine restricts the number of worker threads available to handle incoming requests. With more threads allocated, it is possible to have more processes instance being executed in parallel. If there is more work that can be handled (i.e. ActiveVOS reaches max worker threads threshold) work is queued until a thread is freed up. Database Max sessions To eliminate the potential bottleneck of ActiveVOS process threads trying to persist data to the database, you can set the max SQL sessions to an appropriate number. This number should be greater than the JDBC Connection Pool maximum specified Copyright 2011. Active Endpoints, Inc. Page 4 of 7
Test Results Two configurations are described here. Though this table does not depict the effect of changing individual configuration parameters, it shows settings that can be utilized to impact throughput. Component Settings Configuration 1 Configuration 2 soapui Load Test Threads (virtual users) 10 threads Total Runs: 1,000 10 threads Total Runs: 2000 Memory Memory setting (configured via JAVA_OPTS parameter) -Xmx1600m -Xms1600m -XX:MaxPermSize=256m -Xmx4072m -Xms4072m -XX:MaxPermSize=256m JDBC JDBC Connection pool min: 10 max: 100 min: 200 max: 400 ActiveVOS Process persistence on off Process logging off off Worker threads min / max: 10/50 min / max: 200/400 Database Max sessions 100+ 100+ Observed Transactions per Second (TPS) 95.56 TPS 200 TPS Other Parameters Influencing Throughput If you are trying to achieve a high level of concurrency, you should consider adjusting to following ActiveVOS console settings: Process Count - Specifies the maximum number of processes in memory. The default number is 50. Consider 500 but please ensure you monitor memory allocation closely. Turn off Message Validation. The Validate input/output messages against schema controls validation of the data used in service interactions against their associated schema. Disable this option for faster execution. Copyright 2011. Active Endpoints, Inc. Page 5 of 7
On the Dispatch Manager page (ActiveVOS 9 and above), consider increasing the max concurrent threshold for the system default to 500 Monitor JVM memory usage along with the values for the thread pool usage and In Memory Processes on the System Performance page (ActiveVOS 9 and above) while under load to determine if the values for process count/max threads should be increased/decreased. Monitor the dispatch configuration on the Dispatch Manager page to see if you are hitting limits. Increase the limit if memory/cpu constraints permit. Learning how to configure ActiveVOS Server To learn about how to configure allocated Database and Work Managers please, process persistence, logging and work manager configuration information can be found in the Server Properties of the ActiveVOS Server Console Online Help. Please note that the ActiveVOS Server Work Manager configuration properties do not appear in the Administration Console if the ActiveVOS server is configured to use an application server s Work Manager. Summary/Conclusion By tuning ActiveVOS and allocating a greater amount of resources available to the server higher throughput can be achieved on a single node (95.56 TPS vs 200 TPS). Clustering will also drive performance up. Copyright 2011. Active Endpoints, Inc. Page 6 of 7
About Active Endpoints Active Endpoints (www.activevos.com) ActiveVOS is the leader in serviceoriented BPM software for process automation. ActiveVOS empowers project teams to create business process management (BPM) applications using services, making their businesses more agile and effective. ActiveVOS promotes mass adoption of SOA-enabled BPM applications by focusing on accelerating project delivery time with a complete, affordable and easy-to-use system. Active Endpoints is headquartered in Waltham, MA with development facilities in Shelton, CT. To find out how Active Endpoints can help your business, visit http://www.activevos.com, call +1 781 547 2900 and press 1 for Sales, or email us at info@activevos.com. Copyright 2011. Active Endpoints, Inc. Page 7 of 7