[ 
https://issues.apache.org/jira/browse/AMQ-4853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joshua Watkins updated AMQ-4853:
--------------------------------

    Attachment: amqAdvirsoryCPUIssue.jpg

+1 Rob.

Tim,
I will try to come up with a stress test for this code. Attached is a Profiling 
session when the cpu was at nearly 100% usage to show just how badly it is 
performing. 

> Advisory support leads to excessive CPU usage
> ---------------------------------------------
>
>                 Key: AMQ-4853
>                 URL: https://issues.apache.org/jira/browse/AMQ-4853
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0
>            Reporter: Joshua Watkins
>         Attachments: amqAdvirsoryCPUIssue.jpg
>
>
> After upgrading from AMQ 5.8 to 5.9 we have seen cpu usage continually climb 
> until AMQ threads are taking nearly all of the CPU Resources while remaining 
> fairly idle. This is just a single broker with advisory support on. (Advisory 
> support is on in this case as we run the same config for a network of 
> brokers.) Turning off advisory support reduced the CPU load to single digits.
> top -H output:
> Cpu(s): 97.8%us,  2.1%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
> Mem:   7872040k total,  6574324k used,  1297716k free,   301028k buffers
> Swap:        0k total,        0k used,        0k free,  1635392k cached
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
>                                                                               
>                                                   
> 25476 root      16   0 2173m 891m  11m R 14.4 11.6  86:12.10 java             
>                                                                               
>                                                    
> 25472 root      15   0 2173m 891m  11m R 13.6 11.6  86:09.77 java             
>                                                                               
>                                                    
> 25155 root      16   0 2173m 891m  11m R  9.8 11.6  86:26.13 java             
>                                                                               
>                                                    
> 25471 root      16   0 2173m 891m  11m R  9.2 11.6  86:12.93 java             
>                                                                               
>                                                    
> 25514 root      16   0 2173m 891m  11m R  9.2 11.6  86:15.12 java             
>                                                                               
>                                                    
> 25202 root      16   0 2173m 891m  11m R  8.7 11.6  86:33.20 java             
>                                                                               
>                                                    
> 25189 root      16   0 2173m 891m  11m S  8.4 11.6  86:24.65 java             
>                                                                               
>                                                    
> 25274 root      16   0 2173m 891m  11m R  8.1 11.6  86:18.45 java             
>                                                                               
>                                                    
> 19272 root      15   0 2173m 891m  11m S  8.1 11.6   8:40.19 java             
>                                                                               
>                                                    
> 20039 root      15   0 2173m 891m  11m S  8.1 11.6   8:15.53 java             
>                                                                               
>                                                    
> 19270 root      15   0 2173m 891m  11m R  7.8 11.6   8:35.85 java             
>                                                                               
>                                                    
> 25134 root      16   0 2173m 891m  11m R  7.5 11.6  90:42.29 java             
>                                                                               
>                                                    
> 25259 root      15   0 2173m 891m  11m R  7.5 11.6  90:30.02 java             
>                                                                               
>                                                    
> 25474 root      16   0 2173m 891m  11m R  7.5 11.6  86:13.24 java             
>                                                                               
>                                                    
> 25475 root      16   0 2173m 891m  11m R  7.5 11.6  86:11.74 java             
>                                                                               
>                                                    
> 25483 root      16   0 2173m 891m  11m R  7.5 11.6  86:12.30 java             
>                                                                               
>                                                    
> 25210 root      15   0 2173m 891m  11m R  7.2 11.6  90:35.24 java             
>                                                                               
>                                                    
> 25129 root      16   0 2173m 891m  11m S  6.9 11.6  90:31.27 java             
>                                                                               
>                                                    
> 25249 root      16   0 2173m 891m  11m S  6.9 11.6  86:18.35 java             
>                                                                               
>                                                    
> 25489 root      16   0 2173m 891m  11m R  6.9 11.6  86:16.93 java             
>                                                                               
>                                                    
>  9971 root      15   0 2173m 891m  11m S  6.6 11.6  38:53.66 java             
>                                                                               
>                                                    
> 25116 root      16   0 2173m 891m  11m R  6.3 11.6  90:28.39 java             
>                                                                               
>                                                    
> 25513 root      16   0 2173m 891m  11m R  6.3 11.6  86:07.62 java    
> Thread dump snippets:
> PID 25476 --
> "ActiveMQ Transport: tcp:///10.33.154.95:48799@61616" daemon prio=10 
> tid=0x00002aaaf5288800 nid=0x6384 runnable [0x00000000489b1000]
>    java.lang.Thread.State: RUNNABLE
>       at 
> java.util.concurrent.ConcurrentLinkedQueue.remove(ConcurrentLinkedQueue.java:346)
>       at 
> org.apache.activemq.advisory.AdvisoryBroker.removeConsumer(AdvisoryBroker.java:270)
>       at 
> org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:132)
>       at 
> org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:132)
>       at 
> org.apache.activemq.broker.MutableBrokerFilter.removeConsumer(MutableBrokerFilter.java:137)
>       at 
> org.apache.activemq.broker.TransportConnection.processRemoveConsumer(TransportConnection.java:619)
>       at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:76)
>       at 
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>       at 
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:149)
>       at 
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>       at 
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
>       at 
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
>       at java.lang.Thread.run(Thread.java:619)
> PID - 25473
> "ActiveMQ Transport: tcp:///10.33.154.95:48802@61616" daemon prio=10 
> tid=0x00002aaaf6afc800 nid=0x6381 runnable [0x000000004779f000]
>    java.lang.Thread.State: RUNNABLE
>       at 
> java.util.concurrent.ConcurrentLinkedQueue.remove(ConcurrentLinkedQueue.java:346)
>       at 
> org.apache.activemq.advisory.AdvisoryBroker.removeConsumer(AdvisoryBroker.java:270)
>       at 
> org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:132)
>       at 
> org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:132)
>       at 
> org.apache.activemq.broker.MutableBrokerFilter.removeConsumer(MutableBrokerFilter.java:137)
>       at 
> org.apache.activemq.broker.TransportConnection.processRemoveConsumer(TransportConnection.java:619)
>       at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:76)
>       at 
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>       at 
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:149)
>       at 
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>       at 
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
>       at 
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
>       at java.lang.Thread.run(Thread.java:619)
> PID 25471 --
> "ActiveMQ Transport: tcp:///10.33.154.95:48803@61616" daemon prio=10 
> tid=0x00002aaaf6f4b800 nid=0x6380 runnable [0x00000000487af000]
>    java.lang.Thread.State: RUNNABLE
>       at 
> java.util.concurrent.ConcurrentLinkedQueue.remove(ConcurrentLinkedQueue.java:346)
>       at 
> org.apache.activemq.advisory.AdvisoryBroker.removeConsumer(AdvisoryBroker.java:270)
>       at 
> org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:132)
>       at 
> org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:132)
>       at 
> org.apache.activemq.broker.MutableBrokerFilter.removeConsumer(MutableBrokerFilter.java:137)
>       at 
> org.apache.activemq.broker.TransportConnection.processRemoveConsumer(TransportConnection.java:619)
>       at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:76)
>       at 
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>       at 
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:149)
>       at 
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>       at 
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
>       at 
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
>       at java.lang.Thread.run(Thread.java:619)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to