Return-Path: Delivered-To: apmail-geronimo-user-archive@www.apache.org Received: (qmail 61179 invoked from network); 6 Oct 2010 14:08:41 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 6 Oct 2010 14:08:41 -0000 Received: (qmail 19933 invoked by uid 500); 6 Oct 2010 14:08:41 -0000 Delivered-To: apmail-geronimo-user-archive@geronimo.apache.org Received: (qmail 19890 invoked by uid 500); 6 Oct 2010 14:08:40 -0000 Mailing-List: contact user-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: user@geronimo.apache.org List-Id: Delivered-To: mailing list user@geronimo.apache.org Received: (qmail 19883 invoked by uid 99); 6 Oct 2010 14:08:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Oct 2010 14:08:40 +0000 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=SPF_HELO_PASS,SPF_NEUTRAL,URI_HEX X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Oct 2010 14:08:34 +0000 Received: from ben.nabble.com ([192.168.236.152]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1P3UfG-0006EB-1J for user@geronimo.apache.org; Wed, 06 Oct 2010 07:08:14 -0700 Date: Wed, 6 Oct 2010 07:08:14 -0700 (PDT) From: boes To: user@geronimo.apache.org Message-ID: <1286374094034-1642725.post@n3.nabble.com> In-Reply-To: References: <1285948748971-1615458.post@n3.nabble.com> Subject: Re: Memory leak using Geronimo 2.1.4? Having 116760 instances of LifecycleEvent MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I used YourKit to find out that the large amount of LifecycleEvent instances is normal behaviour of Geronimo Tomcat. It shows that almost every 2 seconds 558 of such LifecycleEvents are generated and when there are something like 200000 of them, the garbage collector removes them from the heap. The out of memory problem had nothing to do with LifecycleEvents. I created some heavy load on the server with the use of Apache JMeter and was able to reproduce the out of memory problem. As suggested by Kevan I used Eclipse Mat to analyze the heap. I found that a few instances of org.apache.jasper.runtime.BodyContentImpl where responsible for holding almost all memory in the heap. This is a well known Tomcat issue. For some reason the default behaviour of tomcat is to have unlimited buffer growth for this class. To limit the buffer growth a java option must be set: org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true. After that config change the JMeter test ran without any problem, so it looks like the LIMIT_BUFFER setting did the trick. -- View this message in context: http://apache-geronimo.328035.n3.nabble.com/Memory-leak-using-Geronimo-2-1-4-Having-116760-instances-of-LifecycleEvent-tp1615458p1642725.html Sent from the Users mailing list archive at Nabble.com.