web stats
mirth connect performance on multiple channels - Mirth Community

Go Back   Mirth Community > Mirth Connect > Support

Reply
 
Thread Tools Display Modes
  #1  
Old 11-17-2017, 06:51 AM
surfer2sky surfer2sky is offline
Mirth Newb
 
Join Date: Oct 2017
Posts: 7
surfer2sky is on a distinguished road
Default mirth connect performance on multiple channels

Hello, all,

I am tasked to do a bare bone Proof of Concept introducing Mirth Connect to the company. I use multiple threads to send thousands of sample HL7 msgs to about 50 channels using TCP/MLLP. The machine is a pretty powerful AWS C4 instance. I saw the performance decreases consistently over time to about 40 msgs/sec.

I didn't observe any obvious CPU/memory usage/network/file IO/db IO bottlenecks. Where should I look into to find out the bottleneck? I saw others saying that Mirth Connect can handle 1000 msg/sec. I will be happy if hundreds, but 40 msgs/sec is a little bit too low for me. There are no any fancy additional business logic there other than:
* convert the HL7 msg into xml file
* save the data into the Mirth Connect DB, an AWS RDS PostgreSQL server

Many thanks.
Reply With Quote
  #2  
Old 11-17-2017, 09:05 AM
appsbyaaron's Avatar
appsbyaaron appsbyaaron is offline
Mirth Guru
 
Join Date: Nov 2011
Location: Florida, USA
Posts: 377
appsbyaaron is on a distinguished road
Default

Are you wanting to process 1000/sec every second of every day?? That's like 86,400,000 per day. 1000 per second, 60,000 per minute. 3,600,000 per hour etc.

Quote:
save the data into the Mirth Connect DB, an AWS RDS PostgreSQL server
Mirth Connect is already doing that for you. Are you writing it IN ADDITION to that? If you aren't pruning the channels then you are storing a lot of information including the messages received and sent.

I work in a major hospital and we have Mirth Connect sending millions of messages every month (62,802,829 in October) to various systems within and outside the network and I don't see that kind of activity every single second all the time. As I watch production just now I see some channels get bursts of 2 or 56 and they get delivered almost instantly (I have the dashboard set to refresh every second). Sometimes a vendor's system will go down and one of my channels will queue 18,000+ messages within an our or so. Then once the connection is back Mirth will send them in a few minutes.

It also depends on a lot of factors outside of Mirth application/appliance. How is network traffic? What other systems are sending and absorbing the messages? Are they taking a long time to receive and close connections? Is Mirth on a server? What are it's specs? Are you allocating server reasources appropriately? Are your channels configured correctly? Are you using multiple threads to deliver?

It's more than "can mirth process 1000/sec".

You can also stand up multiple Mirth Appliances/Applications of you run into throughput issues. If you need 28 Mirth Connects up and running to accomplish your needs you can. It's free.

Last edited by appsbyaaron; 11-17-2017 at 09:15 AM.
Reply With Quote
  #3  
Old 11-17-2017, 10:15 AM
kirbykn2's Avatar
kirbykn2 kirbykn2 is offline
Mirth Guru
 
Join Date: Sep 2014
Location: Michigan
Posts: 556
kirbykn2 is on a distinguished road
Default

Queue Settings and Message Storage options have a big impact on performance.

Depending on our specific requirements I would start with adjusting these settings.
__________________
Kirby

Mirth Certified|Epic Bridges Certified|Cloverleaf Level 2 Certified

Appliance Version 3.11.2
Mirth Connect Version 3.6.1
Java Version 1.6.0_45-b06
Java (64 bit) Version 1.6.0_45-b06
Java 7 (64 bit) Version 1.7.0_151-b15
Java 8 (64 bit) Version 1.8.0_121-b13
PostgreSQL Version 9.6.3
Reply With Quote
  #4  
Old 11-18-2017, 12:28 PM
surfer2sky surfer2sky is offline
Mirth Newb
 
Join Date: Oct 2017
Posts: 7
surfer2sky is on a distinguished road
Default

thanks for the replies. we are targeting 45 hospitals from the same organization. I will try out the queue settings and the storage.
Reply With Quote
  #5  
Old 11-28-2017, 09:17 AM
surfer2sky surfer2sky is offline
Mirth Newb
 
Join Date: Oct 2017
Posts: 7
surfer2sky is on a distinguished road
Default

A really dummy solution, but it increases the throughput 3 times for me. Post it here in case any newbie will find it useful:
Mirth Connect Server Manager > Server > Server Memory: increase the size there
Reply With Quote
  #6  
Old 11-28-2017, 09:57 AM
kirbykn2's Avatar
kirbykn2 kirbykn2 is offline
Mirth Guru
 
Join Date: Sep 2014
Location: Michigan
Posts: 556
kirbykn2 is on a distinguished road
Default

Yes server resource configuration is important


Also, you can increase the number of threads on a channel by channel basis. this will speed the processing of messages, but message order is not guaranteed. There is additional configuration needed to increase the threads and still guarantee message order.
__________________
Kirby

Mirth Certified|Epic Bridges Certified|Cloverleaf Level 2 Certified

Appliance Version 3.11.2
Mirth Connect Version 3.6.1
Java Version 1.6.0_45-b06
Java (64 bit) Version 1.6.0_45-b06
Java 7 (64 bit) Version 1.7.0_151-b15
Java 8 (64 bit) Version 1.8.0_121-b13
PostgreSQL Version 9.6.3

Last edited by kirbykn2; 11-29-2017 at 06:02 AM.
Reply With Quote
  #7  
Old 11-29-2017, 03:54 AM
surfer2sky surfer2sky is offline
Mirth Newb
 
Join Date: Oct 2017
Posts: 7
surfer2sky is on a distinguished road
Default

thanks
Reply With Quote
Reply

Tags
aws, channel, performance

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 05:55 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Mirth Corporation