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 |
---|---|
119 ms | 1840 rpm |
After Upgrade:
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)