Performance Improvement since Bahmni 0.87

Performance Improvement since Bahmni 0.87

Major changes in Bahmni 0.87:

  • OpenMRS has been upgraded to major version 2.0

  • Java has upgraded to version 8

Performance monitoring has been done by running a set of gatling scenarios for a certain period of time, which mimics the realtime scenarios.
The gatling simulation includes scenarios for Clinical flow, Registration flow, Inpatient flow and Atomfeed calls.

The scenarios and configuration can be found here: https://github.com/Bahmni/experiment/tree/master/bahmni-gatling/src/test/scala/org/bahmni/gatling

Environment and Test Configurations:

RAM

8GB

Swap space

4GB

Database used

Anonymised Prod data

Services run

Openmrs

Test Duration

1 hour

Load Configuration

load configuration

Monitoring tool

Newrelic APM tool

Observations:

Before Upgrade:

Average Response time

Throughput

Average Response time

Throughput

119 ms

1840 rpm


After Upgrade:

Average Response time

Throughput

Average Response time

Throughput

43 ms

4140 rpm

JVM and CPU has been found stable before and after the upgrade.

Since Java 8, Java's share in CPU time has also been reduced by approximately 10%.

There were number of performance improvements done in OpenMRS as well. One such improvement is enabling hibernate second level cache for entities like Person, Address, PersonName, GlobalProperty, Role, Privilege.





The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)