OpenSHR reference application performance analysis

Hi all,

I’ve been doing some performance tuning on our OpenSHR reference application based on OpenMRS. I have implemented some simple caching mechanisms to improve performance. Here are some of the results I have seen. I created a basic performance testing tool which posts provide and register transactions at the SHR (https://github.com/jembi/xds-repo-benchmark). Using this tool I got the following results:

Before caching or any performance enhancements

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Completed requests: 2

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Requests per second: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 50% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 90% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 95% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 99% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 100% 17227 ms (longest request)

After performance enhancement, but with the cache still warming up

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Completed requests: 29

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Requests per second: 1

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 50% 1428 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 90% 22962 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 95% 25522 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 99% 26759 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 100% 26759 ms (longest request)

After performance enhancement, but with and after the cache has warmed up

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Completed requests: 136

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Requests per second: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 50% 1142 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 90% 1453 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 95% 1549 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 99% 1688 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 100% 1775 ms (longest request)

So, in summary we have gone from 17s long requests to under 2s with most requests under 1.5s. With the performance improvements we are able to handle about 5 requests per second on my (fairly quick) laptop. This is still not where we want to be, however it is much better than what we had. This should be good for most smaller implementations.

Let me know if you have any questions about these results.

Cheers,

Ryan

···

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org

Hi Ryan

Thanks for this. Could you describe the requests please? What are you requesting and how big is the payload you are storing?

Thanks

···

On Mon, Mar 9, 2015 at 2:24 PM, Ryan Crichton ryan@jembi.org wrote:

Hi all,

I’ve been doing some performance tuning on our OpenSHR reference application based on OpenMRS. I have implemented some simple caching mechanisms to improve performance. Here are some of the results I have seen. I created a basic performance testing tool which posts provide and register transactions at the SHR (https://github.com/jembi/xds-repo-benchmark). Using this tool I got the following results:

Before caching or any performance enhancements

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Completed requests: 2

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Requests per second: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 50% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 90% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 95% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 99% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 100% 17227 ms (longest request)

After performance enhancement, but with the cache still warming up

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Completed requests: 29

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Requests per second: 1

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 50% 1428 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 90% 22962 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 95% 25522 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 99% 26759 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 100% 26759 ms (longest request)

After performance enhancement, but with and after the cache has warmed up

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Completed requests: 136

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Requests per second: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 50% 1142 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 90% 1453 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 95% 1549 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 99% 1688 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 100% 1775 ms (longest request)

So, in summary we have gone from 17s long requests to under 2s with most requests under 1.5s. With the performance improvements we are able to handle about 5 requests per second on my (fairly quick) laptop. This is still not where we want to be, however it is much better than what we had. This should be good for most smaller implementations.

Let me know if you have any questions about these results.

Cheers,

Ryan

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org

You received this message because you are subscribed to the Google Groups “Shared Health Record (OpenHIE)” group.

To unsubscribe from this group and stop receiving emails from it, send an email to openhie-shr+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Carl Fourie

Assistant Director of Programs, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 71 540 4477 | Office: +27 21 701 0939 | Skype: carl.fourie17
E-mail: carl.fourie@jembi.org

Hey Carl,

Sure. I’m sending these two documents using the provide and register transaction:

Ryan

···

On Mon, Mar 9, 2015 at 2:42 PM, Carl Fourie carl@jembi.org wrote:

Hi Ryan

Thanks for this. Could you describe the requests please? What are you requesting and how big is the payload you are storing?

Thanks

Carl Fourie

Assistant Director of Programs, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 71 540 4477 | Office: +27 21 701 0939 | Skype: carl.fourie17
E-mail: carl.fourie@jembi.org

On Mon, Mar 9, 2015 at 2:24 PM, Ryan Crichton ryan@jembi.org wrote:

Hi all,

I’ve been doing some performance tuning on our OpenSHR reference application based on OpenMRS. I have implemented some simple caching mechanisms to improve performance. Here are some of the results I have seen. I created a basic performance testing tool which posts provide and register transactions at the SHR (https://github.com/jembi/xds-repo-benchmark). Using this tool I got the following results:

Before caching or any performance enhancements

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Completed requests: 2

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Requests per second: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 50% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 90% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 95% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 99% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 100% 17227 ms (longest request)

After performance enhancement, but with the cache still warming up

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Completed requests: 29

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Requests per second: 1

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 50% 1428 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 90% 22962 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 95% 25522 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 99% 26759 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 100% 26759 ms (longest request)

After performance enhancement, but with and after the cache has warmed up

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Completed requests: 136

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Requests per second: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 50% 1142 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 90% 1453 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 95% 1549 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 99% 1688 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 100% 1775 ms (longest request)

So, in summary we have gone from 17s long requests to under 2s with most requests under 1.5s. With the performance improvements we are able to handle about 5 requests per second on my (fairly quick) laptop. This is still not where we want to be, however it is much better than what we had. This should be good for most smaller implementations.

Let me know if you have any questions about these results.

Cheers,

Ryan

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org

You received this message because you are subscribed to the Google Groups “Shared Health Record (OpenHIE)” group.

To unsubscribe from this group and stop receiving emails from it, send an email to openhie-shr+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org

Thanks Ryan.

@Derek and Justin you mentioned on a call a week ago about having access to do more testing. Could we look at running similar tests and see what you come up with too?

Thanks

···

On Mon, Mar 9, 2015 at 3:42 PM, Ryan Crichton ryan@jembi.org wrote:

Hey Carl,

Sure. I’m sending these two documents using the provide and register transaction:

Ryan

Carl Fourie

Assistant Director of Programs, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 71 540 4477 | Office: +27 21 701 0939 | Skype: carl.fourie17
E-mail: carl.fourie@jembi.org

On Mon, Mar 9, 2015 at 2:42 PM, Carl Fourie carl@jembi.org wrote:

Hi Ryan

Thanks for this. Could you describe the requests please? What are you requesting and how big is the payload you are storing?

Thanks


Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org

Carl Fourie

Assistant Director of Programs, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 71 540 4477 | Office: +27 21 701 0939 | Skype: carl.fourie17
E-mail: carl.fourie@jembi.org

On Mon, Mar 9, 2015 at 2:24 PM, Ryan Crichton ryan@jembi.org wrote:

Hi all,

I’ve been doing some performance tuning on our OpenSHR reference application based on OpenMRS. I have implemented some simple caching mechanisms to improve performance. Here are some of the results I have seen. I created a basic performance testing tool which posts provide and register transactions at the SHR (https://github.com/jembi/xds-repo-benchmark). Using this tool I got the following results:

Before caching or any performance enhancements

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Completed requests: 2

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Requests per second: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 50% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 90% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 95% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 99% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 100% 17227 ms (longest request)

After performance enhancement, but with the cache still warming up

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Completed requests: 29

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Requests per second: 1

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 50% 1428 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 90% 22962 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 95% 25522 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 99% 26759 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 100% 26759 ms (longest request)

After performance enhancement, but with and after the cache has warmed up

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Completed requests: 136

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Requests per second: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 50% 1142 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 90% 1453 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 95% 1549 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 99% 1688 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 100% 1775 ms (longest request)

So, in summary we have gone from 17s long requests to under 2s with most requests under 1.5s. With the performance improvements we are able to handle about 5 requests per second on my (fairly quick) laptop. This is still not where we want to be, however it is much better than what we had. This should be good for most smaller implementations.

Let me know if you have any questions about these results.

Cheers,

Ryan

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org

You received this message because you are subscribed to the Google Groups “Shared Health Record (OpenHIE)” group.

To unsubscribe from this group and stop receiving emails from it, send an email to openhie-shr+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

We look forward updating the version of OpenSHR installed on the MEDIC test rig and will confirm (and publish) the results. Thanks so much, Ryan, for making the mods you’ve made – improving throughput by an order of magnitude is a great result. :slight_smile:

Derek.

Derek Ritz, P.Eng., CPHIMS-CA

ecGroup Inc.

+1 (905) 515-0045

www.ecgroupinc.com

This communication is intended only for the party to whom it is addressed, and may contain information which is privileged or confidential. Any other delivery, distribution, copying or disclosure is strictly prohibited and is not a waiver of privilege or confidentiality. If you have received this telecommunication in error, please notify the sender immediately by return electronic mail and destroy the message and any attachments.

···

Le présent courriel et les documents qui y sont joints sont confidentiels et protégés et s’adressent exclusivement au destinataire mentionné ci-dessus. L’expéditeur ne renonce pas aux droits et privilèges qui s’y rapportent ni à leur caractère confidentiel. Toute prise de connaissance, diffusion, utilisation ou reproduction de ce message ou des documents qui y sont joints, ainsi que des renseignements que chacun contient, par une personne autre que le destinataire prévu est interdite. Si vous recevez ce courriel par erreur, veuillez le détruire immédiatement et m’en informer.

From: openhie-shr@googlegroups.com [mailto:openhie-shr@googlegroups.com] On Behalf Of Carl Fourie
Sent: Monday, March 9, 2015 9:59 AM
To: Ryan Crichton
Cc: openhie-shr@googlegroups.com
Subject: Re: OpenSHR reference application performance analysis

Thanks Ryan.

@Derek and Justin you mentioned on a call a week ago about having access to do more testing. Could we look at running similar tests and see what you come up with too?

Thanks

Carl Fourie


Assistant Director of Programs, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 71 540 4477 | Office: +27 21 701 0939 | Skype: carl.fourie17
E-mail: carl.fourie@jembi.org

On Mon, Mar 9, 2015 at 3:42 PM, Ryan Crichton ryan@jembi.org wrote:

Hey Carl,

Sure. I’m sending these two documents using the provide and register transaction:

Cheers,

Ryan

On Mon, Mar 9, 2015 at 2:42 PM, Carl Fourie carl@jembi.org wrote:

Hi Ryan

Thanks for this. Could you describe the requests please? What are you requesting and how big is the payload you are storing?

Thanks

Carl Fourie


Assistant Director of Programs, Jembi Health Systems | SOUTH AFRICA
Mobile: +27 71 540 4477 | Office: +27 21 701 0939 | Skype: carl.fourie17
E-mail: carl.fourie@jembi.org

On Mon, Mar 9, 2015 at 2:24 PM, Ryan Crichton ryan@jembi.org wrote:

Hi all,

I’ve been doing some performance tuning on our OpenSHR reference application based on OpenMRS. I have implemented some simple caching mechanisms to improve performance. Here are some of the results I have seen. I created a basic performance testing tool which posts provide and register transactions at the SHR (https://github.com/jembi/xds-repo-benchmark). Using this tool I got the following results:

Before caching or any performance enhancements

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Completed requests: 2

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Requests per second: 0

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Total time: 30.014284876 s

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 50% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 90% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 95% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 99% 17227 ms

[Thu Mar 05 2015 10:26:49 GMT+0200 (SAST)] INFO 100% 17227 ms (longest request)

After performance enhancement, but with the cache still warming up

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Completed requests: 29

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Requests per second: 1

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Total time: 30.009019514 s

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 50% 1428 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 90% 22962 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 95% 25522 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 99% 26759 ms

[Thu Mar 05 2015 10:29:27 GMT+0200 (SAST)] INFO 100% 26759 ms (longest request)

After performance enhancement, but with and after the cache has warmed up

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Target URL: http://localhost:8081/openmrs/ms/xdsrepository

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Max time (s): 30

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Concurrency level: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Agent: none

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Completed requests: 136

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total errors: 0

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Requests per second: 5

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Total time: 30.010083283 s

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO Percentage of the requests served within a certain time

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 50% 1142 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 90% 1453 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 95% 1549 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 99% 1688 ms

[Thu Mar 05 2015 10:30:09 GMT+0200 (SAST)] INFO 100% 1775 ms (longest request)

So, in summary we have gone from 17s long requests to under 2s with most requests under 1.5s. With the performance improvements we are able to handle about 5 requests per second on my (fairly quick) laptop. This is still not where we want to be, however it is much better than what we had. This should be good for most smaller implementations.

Let me know if you have any questions about these results.

Cheers,

Ryan

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org


You received this message because you are subscribed to the Google Groups “Shared Health Record (OpenHIE)” group.
To unsubscribe from this group and stop receiving emails from it, send an email to openhie-shr+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ryan Crichton

Lead Developer, Jembi Health Systems | SOUTH AFRICA

Mobile: +27845829934 | Skype: ryan.graham.crichton
E-mail: ryan@jembi.org


You received this message because you are subscribed to the Google Groups “Shared Health Record (OpenHIE)” group.
To unsubscribe from this group and stop receiving emails from it, send an email to openhie-shr+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.