commit | 4e393bdfaba0b52cf5d9ee9b254b7814ee43e4ba | [log] [tgz] |
---|---|---|
author | Alan Conway <aconway@redhat.com> | Thu Feb 23 12:49:38 2017 -0500 |
committer | Alan Conway <aconway@redhat.com> | Thu Feb 23 13:38:07 2017 -0500 |
tree | 5c598bbb14e42438dbd6cd52e08bc33aff914002 | |
parent | f0eaf298d3b54116cd6ac22fa26d15af5a19b9e0 [diff] |
QPID-7677: C++ broker AMQP 1.0 subscription uses more memory than 0-10 AMQP 1.0 allocates a per-session buffer for unacknowledged message deliveries. By default it holds up to 5000 deliveries. This commit adds the qpidd option --session-max-unacked so the buffer can be made smaller if the broker has a large number of sessions and the memory overhead is a problem. The following values (in Kb) give an idea of the overhead per session, the actual values will vary by platform and build type: RSS per client for AMQP 0.10: 142 RSS per client for AMQP 1.0 qpidd --session-max-unacked=100: 227 (diff 85) qpidd --session-max-unacked=1000: 349 (diff 207) qpidd --session-max-unacked=5000: 846 (diff 704) The broker sending messages on a session without waiting for acknowledgement up to the session-max-unacked limit (it may stop sending before the limit if the aggregate link credit for the session is lower.) Once it reaches the limit it will wait for acknowledgement from the client before sending more messages.
Qpid C++ is a C++ implementation of the AMQP protocol described at http://amqp.org/.
For additional software or information on the Qpid project go to:
For documentation, go to:
In C++ distributions:
mkdir BLD # The recommended way to use cmake is in a separate # build directory cd BLD cmake .. # Generates code and makefiles make test # Runs tests make install # Installs the client and daemon
The INSTALL.txt notes contain more detailed information on compiling and installing this software.
examples/README.txt describes the C++ client API examples.