[
https://issues.apache.org/jira/browse/QPID-7963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16195684#comment-16195684
]
Keith Wall edited comment on QPID-7963 at 10/7/17 1:06 PM:
-----------------------------------------------------------
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 before the
recursion starts to unwind. We need to complete the TODO :).
was (Author: k-wall):
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 to a client 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
>
>
> Examining 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: [email protected]
For additional commands, e-mail: [email protected]