Java broker uses excessive amounts of memory to service 0-10 connections
------------------------------------------------------------------------
Key: QPID-3028
URL: https://issues.apache.org/jira/browse/QPID-3028
Project: Qpid
Issue Type: Bug
Components: Java Broker
Affects Versions: 0.8, 0.6
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
Priority: Critical
Fix For: 0.9
The Java broker uses excessive amounts of memory to service 0-10 connections.
There are a number of reasons for this, such as:
- Use of an arbitrary 64000 element array in the Assembler to store incomplete
incoming per-channel data.
- Use of per-connection ThreadLocals for the BBDecoder in the Assembler
interacting with the thread pool threads moving between connections, leading to
an NxM number of BBDecoders in use.
- Use of per-connection ThreadLocals for the BBEncoder in the Disassembler
interacting with the thread pool threads moving between connections, leading to
an NxM number of BBEncoders in use.
- BBDecoder maintaining a hard reference to the last ByteBuffer it used.
- The binary->String cache within BBDecoder maintaining a hard reference to the
entire backing array for the network read buffer which contained the cached
binary, rather than just the bit being cached.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]