From activemq-users-return-5782-apmail-geronimo-activemq-users-archive=geronimo.apache.org@geronimo.apache.org Fri Nov 17 08:47:55 2006 Return-Path: Delivered-To: apmail-geronimo-activemq-users-archive@www.apache.org Received: (qmail 36753 invoked from network); 17 Nov 2006 08:47:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Nov 2006 08:47:54 -0000 Received: (qmail 91301 invoked by uid 500); 17 Nov 2006 08:48:04 -0000 Delivered-To: apmail-geronimo-activemq-users-archive@geronimo.apache.org Received: (qmail 91289 invoked by uid 500); 17 Nov 2006 08:48:04 -0000 Mailing-List: contact activemq-users-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-users@geronimo.apache.org Delivered-To: mailing list activemq-users@geronimo.apache.org Received: (qmail 91280 invoked by uid 99); 17 Nov 2006 08:48:04 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Nov 2006 00:48:04 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: local policy) Received: from [217.205.133.210] (HELO ex1.hpd.int) (217.205.133.210) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Nov 2006 00:47:51 -0800 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: Memory Use Date: Fri, 17 Nov 2006 08:48:29 -0000 Message-ID: <642D4A2F32D7BD42A0C1F7F3EDD0773A46C7E6@ex1.hpd.int> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Memory Use Thread-Index: AccKJQQWRTnWxUvnQjmNeCL5G4D0ZQ== From: "Charles Anthony" To: X-Virus-Checked: Checked by ClamAV on apache.org Hi, We're doing a stress test on our app, and we're trying to test with thousands of concurrent users. Each user has a connection to a (standalone) broker, and each user (currently) has two temporary queues. There is also a central "normal" queue. We are getting garbage collection total freezes after a while with this config. We are just using a tcp: transport, and to begin with we were not using persistence. This is using activemq 4.0 (ish - a little before the release). We then enabled persistence (derby + journal) - and we lasted a little longer, but the same issue arose. I then wrote a little test harness that simply created 50 connections, with two temp queues per session - and the heap grew by 10 Mb (non gc-able). That works out at about 200k per connection; so, for 1000 connections, that's 200 Mb on the heap before we even send any messages ! Is there anyway to decrease this amount-per-connection ? Is there some kind of configureable buffer per connection somewhere ? Our application server IS processing messages as the stress test progresses, and JConsole is showing that the main queue rarely has more than 30 messages, and typically only has 5 or six sitting there. Is there any way to see how BIG these messages are ? I don't think they'll be very big (50-60k is my guess), but I'd like to know. I thought the introduction of the persistence would reduce the memory usage, but it seems not. I've just downloaded 4.0.2, and tried my how-much-space-per-connection test - and it remains at 200k ish. I'll give the stress test using 4.02 a try in a bit - but any pointers would be helpful; I've run Jprofiler against the broker, but nothing obvious is showing up. Cheers, Charles.