You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Francesco Nigro (JIRA)" <ji...@apache.org> on 2018/07/31 09:57:00 UTC

[jira] [Commented] (ARTEMIS-1999) Broker is using 100% core's CPU time if message grouping is used

    [ https://issues.apache.org/jira/browse/ARTEMIS-1999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16563416#comment-16563416 ] 

Francesco Nigro commented on ARTEMIS-1999:
------------------------------------------

The FlameGraph attached (produced by [async profiler|https://github.com/jvm-profiling-tools/async-profiler]) shows the activity of QueueImpl when the consumer haven't started to receive the messages: jstack (and similar) won't show the correct picture where the CPU time is spent, blaming instead small methods like SimpleString::equals.

The picture shows that the time is spent while taking out the messages from the intermediateMessageReferences and putting them into the QueueImp's LinkedListImpl, but no real delivering is happening: the deliver loop shouldn't be called so often when a consumer is busy if is the only one that has to receive the messages.

 

 

> Broker is using 100% core's CPU time if message grouping is used
> ----------------------------------------------------------------
>
>                 Key: ARTEMIS-1999
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1999
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>          Components: Broker
>    Affects Versions: 2.6.2
>            Reporter: Francesco Nigro
>            Assignee: Francesco Nigro
>            Priority: Major
>             Fix For: 2.6.3
>
>         Attachments: cpu.svg
>
>
> When consuming messages with message grouping set on the broker seem to consume excessive amount of CPU time. On 12 core CPU it can be observed that one core goes 100% and stays that way as long as there is more than one consumer attached to a queue. Once the number of consumers is reduced to 1 the CPU usage goes to normal. But moment another consumer is attached another CPU core goes 100%.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)