Sebastian T created ARTEMIS-3117:
------------------------------------

             Summary: Performance degradation when switching from JDK8 to 11
                 Key: ARTEMIS-3117
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3117
             Project: ActiveMQ Artemis
          Issue Type: Improvement
          Components: Broker
    Affects Versions: 2.16.0
         Environment: Amazon Linux 2, Amazon Corretto (OpenJDK 11)
            Reporter: Sebastian T
         Attachments: image-2021-02-12-21-39-32-185.png, 
image-2021-02-12-21-40-21-125.png, image-2021-02-12-21-44-26-271.png, 
image-2021-02-12-21-46-52-006.png, image-2021-02-12-21-47-02-387.png, 
image-2021-02-12-21-47-57-301.png

Since it was announced that probably Artemis 2.18.0 will require Java 11 we 
upgraded the JVM of one of our broker clusters from OpenJDK 8 to OpenJDK 11 and 
are seeing a noticable performance degradation which results in higher CPU 
usage and higher latency.

We are monitoring request/reply round trip duration with a custom distributed 
qpid-jms based healthcheck applications. Here is a graphic that shows the 
effect when we switched the JDK:

!image-2021-02-12-21-39-32-185.png!

The broker itself is also monitored via Dynatrace, there I can see that after 
upgrading to JDK 11 the broker process spend 22% of CPU time locking while in 
JDK it only spent 3.5%.

*JDK 8:*

!image-2021-02-12-21-40-21-125.png!

 

*JDK 11:*

*!image-2021-02-12-21-44-26-271.png!*

 

*A method hotspot breakdown reveals this:*

!image-2021-02-12-21-47-02-387.png!

!image-2021-02-12-21-47-57-301.png!


Maybe I am misinterpreting the charts but the root cause seems to be somewhere 
in {{org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1}}. I currently 
cannot pinpoint the exact line number.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to