Announcement

Collapse
No announcement yet.

Mirth Performance Issue

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mirth Performance Issue

    1. Too many indexes are killing the database performance.

    MESSAGE table have the following indexes:

    KEY `MESSAGE_INDEX1` (`CHANNEL_ID`,`DATE_CREATED`),
    KEY `MESSAGE_INDEX2` (`CHANNEL_ID`,`DATE_CREATED`,`CONNECTOR_NAME`),
    KEY `MESSAGE_INDEX3` (`CHANNEL_ID`,`DATE_CREATED`,`RAW_DATA_PROTOCOL`),
    KEY `MESSAGE_INDEX4` (`CHANNEL_ID`,`DATE_CREATED`,`SOURCE`),
    KEY `MESSAGE_INDEX5` (`CHANNEL_ID`,`DATE_CREATED`,`STATUS`),
    KEY `MESSAGE_INDEX6` (`CHANNEL_ID`,`DATE_CREATED`,`TYPE`),
    KEY `MESSAGE_INDEX7` (`CORRELATION_ID`,`CONNECTOR_NAME`),
    KEY `MESSAGE_INDEX8` (`ATTACHMENT`),

    After dropping 7 indexes( 1,2,3,4,5,7,8), I/O performance improved from 75% to 35%.

    Question : Do we need all the indexes? if Yes, why.


    2. Mirth is using insert which is causing performance issue for too may inserts.

    Question : Can you use Load data infile which provides 20x times faster performance for data load?

  • #2
    Those indexes have been consolidated in 3.x, so I would recommend upgrading.
    Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

    Nicholas Rupley
    Work: 949-237-6069
    Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


    - How do I foo?
    - You just bar.

    Comment


    • #3
      Mirth 3.0.3 Issue :

      Most of the tables have 2-3 indexes and it is slowing down the write performance. We are getting 3MB/sec write, but our Disk(SSD drive) can handle 295MB/sec write. Can we drop some of the indexes to improve the write performance?

      If we change the innodb_flush_log_at_trx_commit=2 ( write after 1 sec) in MySql, it improves the write performance by 40%. But we can't do this, because we don't want to lose any committed data.

      Please let us know how to improve the write performance in Mysql database for Mirth 3.0.3 Our I/O is 99% on disk( SSD drive) for Mysql server and can't handle the write.

      Comment


      • #4
        Originally posted by kunalgupta15 View Post
        Mirth 3.0.3 Issue :

        Most of the tables have 2-3 indexes and it is slowing down the write performance. We are getting 3MB/sec write, but our Disk(SSD drive) can handle 295MB/sec write. Can we drop some of the indexes to improve the write performance?

        If we change the innodb_flush_log_at_trx_commit=2 ( write after 1 sec) in MySql, it improves the write performance by 40%. But we can't do this, because we don't want to lose any committed data.

        Please let us know how to improve the write performance in Mysql database for Mirth 3.0.3 Our I/O is 99% on disk( SSD drive) for Mysql server and can't handle the write.
        You can turn channel storage down to Raw. You won't be able to use destination queuing, but you will be able to use source queuing. At the very least the source raw content will be stored, so if an error occurs you can still reprocess the message.
        Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

        Nicholas Rupley
        Work: 949-237-6069
        Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


        - How do I foo?
        - You just bar.

        Comment


        • #5
          But then we wont be able to see transformed messages on mirth. Can you suggest something else?

          What is the recommended configuration of My SQL machine for production?

          Comment


          • #6
            Originally posted by kunalgupta15 View Post
            But then we wont be able to see transformed messages on mirth. Can you suggest something else?

            What is the recommended configuration of My SQL machine for production?
            If the bottleneck is your database and the physical machine you're writing to, there's not really anything Mirth Connect can do about it. We have MC deployed in a variety of very high-volume production systems with no disk I/O problems (at least when SSD drives are used). The recommended approach is to upgrade your storage hardware to handle the additional load. Mirth Connect is only the software, obviously it's still going to be dependent on the physical machine you deploy it on.
            Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

            Nicholas Rupley
            Work: 949-237-6069
            Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


            - How do I foo?
            - You just bar.

            Comment

            Working...
            X