You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (JIRA)" <ji...@apache.org> on 2017/10/07 13:06:00 UTC

[jira] [Commented] (QPID-7963) [AMQP1.0] Sending a large message uses excessive heap memory

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

Keith Wall commented on QPID-7963:
----------------------------------

The heap becomes dominated by DirectByteBuffers and their QpidByteBuffers holders during the sending of the message to the client.The problem is the recursion in {{org.apache.qpid.server.protocol.v1_0.Session_1_0#sendTransfer}}.   Each recursive call duplicates the every QBB in the payload, even those that have been already 'handled', so the number of QBBs/DBBs squares.  We need to complete the TODO :).


> [AMQP1.0] Sending a large message uses excessive heap memory
> ------------------------------------------------------------
>
>                 Key: QPID-7963
>                 URL: https://issues.apache.org/jira/browse/QPID-7963
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: qpid-java-broker-7.0.0
>            Reporter: Keith Wall
>         Attachments: AMQP1.0transientmessagestraverseheap.png
>
>
> Examine heap usage whilst running a large transient message test, I see that large AMQP 1.0 messages manifest fully on the heap whilst they traverse the Broker.  Neither AMQP 0-9 not AMQP 0-10 do this.
> See attached jvisualvm screenshot.  The spike at 3.17PM is a 300MB message being produced/consumed.   Later in the same test (same graph) a 750MB message went over AMQP 0-9 and 0-10 messages with no discernible heap impact.
> Command line was:
> {{(export MAVEN_OPTS='-Xmx3g'; mvn package exec:java -f pom.xml -Dstresstest=qpid-jms-client -Dexec.args='messagecount=1 size=300000000   random=false jndiProperties=stress-test-client-qpid-jms-client.properties')}}
> Java Broker running with out of the box memory settings with {{-Dqpid.max_message_size=2000000000 -Dqpid.port.max_message_size=2000000000}}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org