Performance Benchmarking - Java upgrade from Java7 to Java8
Bahmni is currently on OpenMRS 1.12. We are planning to upgrade to 2.0. We would like to ensure that there is no performance degradation after the upgrade. OpenMRS 2.0 requires Java 8 and there might be some tuning required after the upgrade. You can refer here.
The Performance Benchmarking setup consists of 2 steps.
Installed Bahmni 0.85 release on a new AWS instance with anonymised Possible database so that a real time data is simulated. This installation is through ansible by default it uses Java7, you can verify in the /opt/openmrs/etc/openmrs.conf file
Wrote Gatling tests for some scenarios like registration search, patient dashboard, clinical search etc, you find here. Gatling is an open-source load testing framework based on Scala. The software is designed to be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications. The Project's aims include High performance, Ready-to-present HTML reports(sample report), Scenario recorder and developer-friendly DSL.
We have bahmni instance and gatling tests are ready for benchmarking, Testing procedure consist of 2 steps
Run each the scenarios 3 times and took response times for each scenario and noted in the sheet (Java7, Java8).
For each scenario, did memory profiling using JConsole (sample snapshot).
Repeated the above steps for Java8(update the JAVA_HOME to point to JRE8 in /opt/openmrs/etc/openmrs.conf)
PermGen Elimination & Impact on Java commandline options
We need to do small changes around JAVA_OPTS. As PerGenSpace is removed in Java8 and in place of PermGen it uses native memory for meta space.