Bug 681279 - excessive per-connection memory
Summary: excessive per-connection memory
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: 2.0
: ---
Assignee: Kim van der Riet
QA Contact: Frantisek Reznicek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-03-01 16:08 UTC by Gordon Sim
Modified: 2015-11-16 01:13 UTC (History)
4 users (show)

Fixed In Version: qpid-cpp-mrg-0.9.1079953
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-06-23 15:43:50 UTC
Target Upstream Version:


Attachments (Terms of Use)
patch to reduce the number of buffers created on the client (439 bytes, patch)
2011-03-01 17:41 UTC, Gordon Sim
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2011:0890 0 normal SHIPPED_LIVE Red Hat Enterprise MRG Messaging 2.0 Release 2011-06-23 15:42:41 UTC

Description Gordon Sim 2011-03-01 16:08:18 UTC
TCPConnector allocates 32 buffers of 64k each which is probably excessive and should be reduced (perhaps made configurable?).

Comment 1 Gordon Sim 2011-03-01 16:21:42 UTC
4 is probably a good place to start (see line 120 of TCPConnector.cpp)

Comment 2 Gordon Sim 2011-03-01 17:41:08 UTC
Created attachment 481690 [details]
patch to reduce the number of buffers created on the client

Comment 3 Gordon Sim 2011-03-01 17:53:06 UTC
Kim, could you verify whether or not the attached patch has any negative impact on some perftest runs?

Comment 4 Kim van der Riet 2011-03-01 21:37:09 UTC
Test on mrg42; RHEL-6; In-tree build of r.1072197/r.4440 (+ patch).

Broker:
./qpidd --auth no --log-enable info+

Client:
for f in 1 2 3 4 5; do ./qpid-perftest --mode shared --summary --qt 4 --npubs 4 --nsubs 4; done

Results before change:
10661.6	8534.17	227919	222.577
8439.52	8425.63	268624	262.328
10598.1	8467.45	225589	220.302
8420.7	8415.94	267710	261.436
8369.25	8354.81	266677	260.427

Results after change:
8513.25	8498.17	269888	263.562
8479.66	8477.36	268835	262.534
10647.2	8516.59	228754	223.393
8425.3	8413.05	266922	260.666
10683.7	8503.88	227678	222.341


Client:
for f in 1 2 3 4 5; do ./qpid-perftest --mode topic --summary --npubs 2 --nsubs 10; done

Results before change:
6882.55	13735.5	151231	147.687
7037.34	14051.4	154701	151.075
7125.92	14201.4	156371	152.706
7050.94	14056.7	154783	151.155
7307.85	14588.1	160618	156.854

Results after change:
6975.15	13894.9	152977	149.392
7041.73	14048	154672	151.046
7152.87	14253	156912	153.235
7288.23	14530.9	160001	156.251
7120.31	14205.2	156423	152.757


These look almost identical

Comment 5 Gordon Sim 2011-03-02 13:15:47 UTC
Thanks Kim! Committed that patch upstream as r1076205.

Comment 7 Frantisek Reznicek 2011-05-02 11:31:49 UTC
The issue has been fixed (by reduction of number of TCPConnector's buffers), tested on RHEL 5.6 6.1s5 i[36]86 / x86_64 on packages:
python-qpid-0.10-1.el5.noarch
python-qpid-qmf-0.10-6.el5.x86_64
qpid-cpp-client-0.10-4.el5.x86_64
qpid-cpp-client-devel-0.10-4.el5.x86_64
qpid-cpp-client-devel-docs-0.10-4.el5.x86_64
qpid-cpp-client-rdma-0.10-4.el5.x86_64
qpid-cpp-client-ssl-0.10-4.el5.x86_64
qpid-cpp-mrg-debuginfo-0.10-4.el5.x86_64
qpid-cpp-server-0.10-4.el5.x86_64
qpid-cpp-server-cluster-0.10-4.el5.x86_64
qpid-cpp-server-devel-0.10-4.el5.x86_64
qpid-cpp-server-rdma-0.10-4.el5.x86_64
qpid-cpp-server-ssl-0.10-4.el5.x86_64
qpid-cpp-server-store-0.10-4.el5.x86_64
qpid-cpp-server-xml-0.10-4.el5.x86_64
qpid-dotnet-0.4.738274-2.el5.x86_64
qpid-java-client-0.10-4.el5.noarch
qpid-java-common-0.10-4.el5.noarch
qpid-java-example-0.10-4.el5.noarch
qpid-qmf-0.10-6.el5.x86_64
qpid-qmf-debuginfo-0.10-6.el5.x86_64
qpid-qmf-devel-0.10-6.el5.x86_64
qpid-tests-0.10-1.el5.noarch
qpid-tools-0.10-4.el5.noarch
rh-qpid-cpp-tests-0.10-4.el5.x86_64
ruby-qpid-qmf-0.10-6.el5.x86_64
sesame-0.10-1.el5.x86_64
sesame-debuginfo-0.10-1.el5.x86_64

-> VERIFIED

Comment 8 Frantisek Reznicek 2011-05-02 11:48:03 UTC
There is seen quite difference between memory consumption on RHEL 6.1 x86_64 and the others, raised as separate bug 701269.

Comment 9 errata-xmlrpc 2011-06-23 15:43:50 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2011-0890.html


Note You need to log in before you can comment on or make changes to this bug.