[
https://issues.apache.org/jira/browse/AMQ-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13263757#comment-13263757
]
Timothy Bish commented on AMQ-3819:
-----------------------------------
Commit test cases on trunk for this scenario, one for each (TCP, SSL, NIO,
NIO+SSL). Only the NIO+SSL version has an issue.
> high cpu with stomp+nio+ssl and many subscriptions
> --------------------------------------------------
>
> Key: AMQ-3819
> URL: https://issues.apache.org/jira/browse/AMQ-3819
> Project: ActiveMQ
> Issue Type: Bug
> Components: stomp
> Affects Versions: 5.6.0
> Environment: CentOS 6, RC of 5.6.0
> java version "1.6.0_22"
> OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-x86_64)
> OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
> Reporter: R.I.Pienaar
> Attachments: StompLoadTest.java, StompNIOSSLLoadTest.java
>
>
> Switching an existing workload from a transport:
> {quote}
> <transportConnector name="verified_stompssl"
> uri="stomp+ssl://0.0.0.0:6165?needClientAuth=true"/>
> {quote}
> to
> {quote}
> <transportConnector name="verified_stompssl"
> uri="stomp+nio+ssl://0.0.0.0:6165?needClientAuth=true"/>
> {quote}
> showed the CPU profile to go from 1-5% to 300% constantly on a 8 core server
> I was able to recreate this using a ruby client @
> http://devco.net/rip/amq_560_stomp_nio_ssl_tester.rb
> The important combinations are:
> * I am connecting to a stomp+nio+ssl port
> * I am creating the subscriptions to the 10 queus and topics
> If I change either of these variables - like just commenting out the loop
> that does those subscriptions - then the CPU load is acceptable.
> I analysed the running VM with VisualVM and found that
> transport.nio.NIOSSLTransport.serviceRead() is the busy thread.
> My activemq.xml is:
> {noformat}
> <beans
> xmlns="http://www.springframework.org/schema/beans"
> xmlns:amq="http://activemq.apache.org/schema/core"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd
> http://activemq.apache.org/camel/schema/spring
> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
> <broker xmlns="http://activemq.apache.org/schema/core" brokerName="amq1"
> useJmx="true" persistent="true" schedulePeriodForDestinationPurge="60000">
> <destinationPolicy>
> <policyMap>
> <policyEntries>
> <policyEntry topic=">" producerFlowControl="false"/>
> <policyEntry queue="*.reply.>" gcInactiveDestinations="true"
> inactiveTimoutBeforeGC="120000" />
> </policyEntries>
> </policyMap>
> </destinationPolicy>
> <managementContext>
> <managementContext connectorPort="1099"
> jmxDomainName="org.apache.activemq"/>
> </managementContext>
> <plugins>
> <statisticsBrokerPlugin/>
> <simpleAuthenticationPlugin>
> <users>
> <authenticationUser username="test" password="test"
> groups="admins,everyone"/>
> </users>
> </simpleAuthenticationPlugin>
> <authorizationPlugin>
> <map>
> <authorizationMap>
> <authorizationEntries>
> <authorizationEntry queue=">" write="admins" read="admins"
> admin="admins" />
> <authorizationEntry topic=">" write="admins" read="admins"
> admin="admins" />
> </authorizationEntries>
> </authorizationMap>
> </map>
> </authorizationPlugin>
> </plugins>
> <sslContext>
> <sslContext
> keyStore="keystore.jks" keyStorePassword="ohshahCu"
> trustStore="truststore.jks" trustStorePassword="ohshahCu"
> />
> </sslContext>
> <systemUsage>
> <systemUsage>
> <memoryUsage>
> <memoryUsage limit="200 mb" />
> </memoryUsage>
> <storeUsage>
> <storeUsage limit="1 gb" />
> </storeUsage>
> <tempUsage>
> <tempUsage limit="1 gb" />
> </tempUsage>
> </systemUsage>
> </systemUsage>
> <transportConnectors>
> <transportConnector name="openwire" uri="tcp://0.0.0.0:6166"/>
> <transportConnector name="stomp+nio"
> uri="stomp+nio://0.0.0.0:6163"/>
> <transportConnector name="stompssl"
> uri="stomp+ssl://0.0.0.0:6164"/>
> <transportConnector name="verified_stompssl"
> uri="stomp+nio+ssl://0.0.0.0:6165?needClientAuth=true"/>
> </transportConnectors>
> </broker>
> <import resource="jetty.xml"/>
> </beans>
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira