Details
Description
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:
CPU Usage of the broker process:
The broker itself is also monitored via Dynatrace, there I can see that after upgrading to JDK 11 the broker process spend 21% of CPU time locking while in JDK it only spent 3.2%.
JDK 8:
JDK 11:
A method hotspot breakdown reveals this:
Maybe I am misinterpreting the charts but the root cause seems to be somewhere in org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1 and/or in org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptor.getSslHandler I currently cannot pinpoint the exact line number.