Great, Scott! Weaver, do you have information about memory usage before changes to the PortletWindowAccessor?
2007/11/7, Weaver, Scott <[EMAIL PROTECTED]>: > The results are looking very positive with just the change to the > PortletWindowAccessor. > > Load Configuration: Using 20 individual users (actual different user names) > and 40 threads (simultaneous users) ending up with a total of 60,000 requests > over a period of about 10 minutes. > > JMeter Summary: > - Thread Group: 40 Threads, 0 ramp up, Loop count 3000 > - Loop Control: Loop Count 20 > - CSV Data Config: 20 individual users > > Max memory usage during the test: 480MB > Memory usage after GC: 306MB > > The baseline RAM usage after GC always seems to be between 275MB and 315MB. > > I will try to get a screenshot of the top objects posted to the Jira issue > soon. > > -scott > > > > -----Original Message----- > > From: Weaver, Scott [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, November 07, 2007 9:25 AM > > To: Jetspeed Developers List > > Subject: RE: high memory consumption, possible fix > > > > Hi Joachim, > > > > You may also be interested in JS2-800 and JS-801 both of which deal with > > memory leaks. Do you happen to have any profiling statistics of the JVM > > around the time it goes OOM? What type of load are you testing with? > > > > I already have fixed JS2-800 (still need to commit) and I am going to try > > to work on JS2-801 here soon. > > > > -scott > > > > > -----Original Message----- > > > From: Joachim Müller [mailto:[EMAIL PROTECTED] > > > Sent: Tuesday, November 06, 2007 3:59 PM > > > To: [email protected] > > > Subject: high memory consumption, possible fix > > > > > > Hi all, > > > > > > we are experiencing very high memory consumption on a system based on > > > Jetspeed 2.1 under very high load. (OutOfMemory within a couple of > > > minutes) > > > > > > There are 2 fix that are proposed to us. First addresses the decoupling > > > of the PortletContent from all ContentFragments of a page in > > > CleanupValveImpl: > > > > > > ((ContentFragment)fragment).setPortletContent(null); > > > > > > > > > The second fix addresses the release of all attributes from velocity > > > context incl. removing cycling references in the > > > JetspeedVelocityViewServlet (service method): > > > > > > ... > > > Context ctx = (Context) > > renderRequest.getAttribute(VELOCITY_CONTEXT_ATTR); > > > > > > renderRequest.removeAttribute(VELOCITY_CONTEXT_ATTR); > > > > > renderRequest.removeAttribute(PortalReservedParameters.JETSPEED_POWER_TOOL > > > _REQ_ATTRIBUTE); > > > > > > JetspeedVelocityPowerTool jpt = (JetspeedVelocityPowerTool) > > > ctx.get(JETSPEED_TOOL_VAR_NAME); > > > > > > if (jpt!=null){ > > > jpt.setVelocityContext(null); > > > ctx.remove(JETSPEED_TOOL_VAR_NAME); > > > } > > > > > > Object[] keys = ctx.getKeys(); > > > //Delete all attributes > > > for (int i = 0; i < keys.length; i++) { > > > ctx.remove(keys[i]); > > > } > > > ... > > > > > > (already adapted to 2.1.2) > > > > > > > > > Since this is kind of rough I would like to discuss this with the > > > developer list. > > > > > > I also know, that Scott was working on replacing the standard hashmap > > > caching in org.apache.jetspeed.profiler.impl.JetspeedProfilerImpl and > > > org.apache.jetspeed.container.window.impl.PortletWindowAccessorImpl. > > > Scott, can you already share some of your results? > > > > > > Best regards, > > > Joachim > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- With best regards, Vitaly Baranovsky --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
