You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Berin Loritsch <bl...@d-haven.org> on 2006/01/26 20:23:20 UTC

Re: Scaling Cocoon to handle a heavy load

Let me find the link that might be able to help you.  This is not 
necessarily a Tomcat/Cocoon issue--it has to do with Java's memory 
management.  You will get OutOfMemoryErrors even when you haven't 
exceeded the -Xmx2048m command with sufficient load.

The problem has to do with the generational garbage collection that Java 
itself has.  Basically, your memory is divided up into buckets--if any 
of them fills up then you get an OutOfMemoryError thrown.  Under normal 
use, there is no problem.  The JVM has plenty of time to move stale 
object references from one GC bucket to the next.  In a web environment, 
you can experience peaks that might instantaneously throw you over the edge.

There is a JVM setting that you can use to increase the bucket sizes for 
the generational garbage collection buckets, and that's what I would 
need to find the link to.

David Bishop wrote:
> Hello,
>
> I am hosting a website for a european project which hosts a number of 
> complicated database driven questionnaires on genetic testing the site 
> receives high peaks of usage and around 5000 visits, 200'000 hits per 
> month. The entire site is written in cocoon and I am having problems 
> in that during peak usage cocoon starts to return blank pages and 
> errors appear in the log from normally error free, the server begins 
> after that point to degrade in performance and Tomcat ends up 
> returning java.lang.OutOfMemoryError errors.
>
> The live server setup is
>
> Linux Fedora Core 2
> Apache Cocoon 2.1.6
> Apache Tomcat 5.0.28
> Java 1.4.2_07
> PostgreSQL 7.4.7
>
> The hardware of the live server is a Quad Xeon 3.0 with 2Gb RAM
>
> Replicating the server locally and hitting the site with Siege I am 
> able to bring the server down in a similar fashion using 15 concurrent 
> users after 10 minutes. Hitting one error free page which takes around 
> 1 second to render on a server with no load.
>
> The page is an aggregation of sitemap matches which run no more than 5 
> deep in sitemaps and has a number of XSP's which access a PostgreSQL 
> database using ESQL for various bits of the page, things start to go 
> nasty when the page response time drops to around 30 seconds.
>
> The Cocoon build however is only core blocks and there is nothing 
> fancy in the code just ESQL, XSP and XSL using the default transformer.
>
> I have tried playing with pool sizes
> I have tried upgrading to Cocoon 2.1.8 which had little effect on 
> performance, but much nicer error pages :-)
> I have tried upgrading to Apache Tomcat 5.5.12 with Java 1.5.0_06 
> which had a good effect on performance but still the site falls over 
> at about 30 concurrent users.
>
> Although I had to go back to Cocoon 2.1.6 as I got xspAttr errors with 
> Cocoon 2.1.8 and Tomcat 5.5.12, any clues on this would also be 
> appreciated!
>
> What I don't understand as I am running out of ideas and depth of 
> knowledge, is how to get better performance, I have set Java with the 
> parameter to -Xmx2048M but tomcat doesn't take any than around 200Mbs.
>
> What I would love is some advice as to what to try next?
>
> - should I look at running multiple instances of tomcat?
>
> Any advice would be greatly appreciated,
>
> David.
>
> David H Bishop
> Waypoint Systems Ltd
>
> Cocoon Error
> -------------------
> FATAL_E (2006-01-20) 19:19.38:590   [core.xslt-processor] 
> (/cocoon/egtorg/web/db/keyword/163/index.xhtml) 
> http-8080-Processor8/TraxErrorHandler: Error in TraxTransformer: 
> javax.xml.transform.TransformerException: 
> java.lang.ArrayIndexOutOfBoundsException: -1
> javax.xml.transform.TransformerException: 
> java.lang.ArrayIndexOutOfBoundsException: -1
>     at 
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276) 
>
>     at 
> org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3372) 
>
>     at 
> org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:433) 
>
>     at 
> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55) 
>
>     at 
> org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:562) 
>
>     at 
> org.apache.cocoon.sitemap.ContentAggregator.generate(ContentAggregator.java:134) 
>
>     at 
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:258) 
>
>     at 
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:468) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:31) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.CategoryNode.invokeByName(CategoryNode.java:62) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:109) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:89) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:240) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:180) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:89) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:240) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:180) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:89) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:240) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:180) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:89) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:240) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:180) 
>
>     at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243) 
>
>     at org.apache.cocoon.Cocoon.process(Cocoon.java:606)
>     at 
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1119)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) 
>
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) 
>
>     at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) 
>
>     at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>     at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) 
>
>     at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) 
>
>     at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
>
>     at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>     at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) 
>
>     at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) 
>
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>     at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
>
>     at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>     at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>     at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>     at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>     at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
>
>     at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) 
>
>     at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
>
>     at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) 
>
>     at java.lang.Thread.run(Thread.java:534)
> Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
>     at org.apache.xml.utils.ObjectStack.pop(ObjectStack.java:137)
>     at 
> org.apache.xalan.transformer.TransformerImpl.popElemTemplateElement(TransformerImpl.java:2521) 
>
>     at 
> org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2178) 
>
>     at 
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1213) 
>
>     ... 78 more
> ---------
>
>
>
>
>
>
>
>
>
>
> Catalina.out Error
> ----------------------------
>
> java.lang.OutOfMemoryError
> java.lang.NullPointerException
>         at 
> org.apache.cocoon.environment.AbstractEnvironment.release(AbstractEnvironment.java:544) 
>
>         at 
> org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade.release(MutableEnvironmentFacade.java:323) 
>
>         at 
> org.apache.cocoon.generation.ServerPagesGenerator.recycle(ServerPagesGenerator.java:262) 
>
>         at 
> org.apache.avalon.excalibur.pool.ResourceLimitingPool.put(ResourceLimitingPool.java:438) 
>
>         at 
> org.apache.avalon.excalibur.component.PoolableComponentHandler.doPut(PoolableComponentHandler.java:212) 
>
>         at 
> org.apache.avalon.excalibur.component.ComponentHandler.put(ComponentHandler.java:425) 
>
>         at 
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:305) 
>
>         at 
> org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:286) 
>
>         at 
> org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:283) 
>
>         at 
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.recycle(AbstractProcessingPipeline.java:658) 
>
>         at 
> org.apache.cocoon.components.pipeline.impl.BaseCachingProcessingPipeline.recycle(BaseCachingProcessingPipeline.java:77) 
>
>         at 
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.recycle(AbstractCachingProcessingPipeline.java:963) 
>
>         at 
> org.apache.avalon.excalibur.pool.ResourceLimitingPool.put(ResourceLimitingPool.java:438) 
>
>         at 
> org.apache.avalon.excalibur.component.PoolableComponentHandler.doPut(PoolableComponentHandler.java:212) 
>
>         at 
> org.apache.avalon.excalibur.component.ComponentHandler.put(ComponentHandler.java:425) 
>
>         at 
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:305) 
>
>         at 
> org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:286) 
>
>         at 
> org.apache.cocoon.components.EnvironmentDescription.release(CocoonComponentManager.java:613) 
>
>         at 
> org.apache.cocoon.components.CocoonComponentManager.endProcessing(CocoonComponentManager.java:218) 
>
>         at org.apache.cocoon.Cocoon.process(Cocoon.java:646)
>         at 
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) 
>
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) 
>
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) 
>
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>         at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
>
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) 
>
>         at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
>
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) 
>
>         at java.lang.Thread.run(Thread.java:534)
> java.lang.NullPointerException
>         at 
> org.apache.cocoon.environment.AbstractEnvironment.release(AbstractEnvironment.java:544) 
>
>         at 
> org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade.release(MutableEnvironmentFacade.java:323) 
>
>         at 
> org.apache.cocoon.generation.ServerPagesGenerator.recycle(ServerPagesGenerator.java:262) 
>
>         at 
> org.apache.avalon.excalibur.pool.ResourceLimitingPool.put(ResourceLimitingPool.java:438) 
>
>         at 
> org.apache.avalon.excalibur.component.PoolableComponentHandler.doPut(PoolableComponentHandler.java:212) 
>
>         at 
> org.apache.avalon.excalibur.component.ComponentHandler.put(ComponentHandler.java:425) 
>
>         at 
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:305) 
>
>         at 
> org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:286) 
>
>         at 
> org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:283) 
>
>         at 
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.recycle(AbstractProcessingPipeline.java:658) 
>
>         at 
> org.apache.cocoon.components.pipeline.impl.BaseCachingProcessingPipeline.recycle(BaseCachingProcessingPipeline.java:77) 
>
>         at 
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.recycle(AbstractCachingProcessingPipeline.java:963) 
>
>         at 
> org.apache.avalon.excalibur.pool.ResourceLimitingPool.put(ResourceLimitingPool.java:438) 
>
>         at 
> org.apache.avalon.excalibur.component.PoolableComponentHandler.doPut(PoolableComponentHandler.java:212) 
>
>         at 
> org.apache.avalon.excalibur.component.ComponentHandler.put(ComponentHandler.java:425) 
>
>         at 
> org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:305) 
>
>         at 
> org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:286) 
>
>         at 
> org.apache.cocoon.components.EnvironmentDescription.release(CocoonComponentManager.java:613) 
>
>         at 
> org.apache.cocoon.components.CocoonComponentManager.endProcessing(CocoonComponentManager.java:218) 
>
>         at org.apache.cocoon.Cocoon.process(Cocoon.java:646)
>         at 
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) 
>
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) 
>
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) 
>
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
>
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
>
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
>
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>         at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
>
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) 
>
>         at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
>
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) 
>
>         at java.lang.Thread.run(Thread.java:534)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


RE: Scaling Cocoon to handle a heavy load

Posted by Mike Dickson <mi...@yahoo.com>.
David, 

I have found that using Hibernate inside custom Actions to get to SQL data
has helped my application tremendously, especially when I have used the
Hibernate second level cache.  The speed is amazing and it scales much
better.

Mike

-----Original Message-----
From: David Bishop [mailto:d.bishop@waypointsystems.co.uk] 
Sent: Thursday, January 26, 2006 11:42 AM
To: users@cocoon.apache.org
Subject: Re: Scaling Cocoon to handle a heavy load

Hi Berin,

This sounds spot on, I shall do as you say and come back with any results.

Thanks!

Berin Loritsch wrote:

> See if these links help you at all:
>
> http://java.sun.com/docs/hotspot/index.html
> http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html
>
http://developer.apple.com/documentation/Java/Reference/Java14VMOptions/VM_O
ptions/chapter_2_section_6.html 
>
> http://performance.netbeans.org/reports/gc/
> http://edocs.bea.com/wls/docs61/perform/JVMTuning.html
>
> I would play around with some of the more fine controlled JVM settings.
>
> Berin Loritsch wrote:
>
>> Let me find the link that might be able to help you.  This is not 
>> necessarily a Tomcat/Cocoon issue--it has to do with Java's memory 
>> management.  You will get OutOfMemoryErrors even when you haven't 
>> exceeded the -Xmx2048m command with sufficient load.
>>
>> The problem has to do with the generational garbage collection that 
>> Java itself has.  Basically, your memory is divided up into 
>> buckets--if any of them fills up then you get an OutOfMemoryError 
>> thrown.  Under normal use, there is no problem.  The JVM has plenty 
>> of time to move stale object references from one GC bucket to the 
>> next.  In a web environment, you can experience peaks that might 
>> instantaneously throw you over the edge.
>>
>> There is a JVM setting that you can use to increase the bucket sizes 
>> for the generational garbage collection buckets, and that's what I 
>> would need to find the link to.
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Scaling Cocoon to handle a heavy load

Posted by David Bishop <d....@waypointsystems.co.uk>.
Hi Berin,

This sounds spot on, I shall do as you say and come back with any results.

Thanks!

Berin Loritsch wrote:

> See if these links help you at all:
>
> http://java.sun.com/docs/hotspot/index.html
> http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html
> http://developer.apple.com/documentation/Java/Reference/Java14VMOptions/VM_Options/chapter_2_section_6.html 
>
> http://performance.netbeans.org/reports/gc/
> http://edocs.bea.com/wls/docs61/perform/JVMTuning.html
>
> I would play around with some of the more fine controlled JVM settings.
>
> Berin Loritsch wrote:
>
>> Let me find the link that might be able to help you.  This is not 
>> necessarily a Tomcat/Cocoon issue--it has to do with Java's memory 
>> management.  You will get OutOfMemoryErrors even when you haven't 
>> exceeded the -Xmx2048m command with sufficient load.
>>
>> The problem has to do with the generational garbage collection that 
>> Java itself has.  Basically, your memory is divided up into 
>> buckets--if any of them fills up then you get an OutOfMemoryError 
>> thrown.  Under normal use, there is no problem.  The JVM has plenty 
>> of time to move stale object references from one GC bucket to the 
>> next.  In a web environment, you can experience peaks that might 
>> instantaneously throw you over the edge.
>>
>> There is a JVM setting that you can use to increase the bucket sizes 
>> for the generational garbage collection buckets, and that's what I 
>> would need to find the link to.
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Scaling Cocoon to handle a heavy load

Posted by Berin Loritsch <bl...@d-haven.org>.
See if these links help you at all:

http://java.sun.com/docs/hotspot/index.html
http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html
http://developer.apple.com/documentation/Java/Reference/Java14VMOptions/VM_Options/chapter_2_section_6.html
http://performance.netbeans.org/reports/gc/
http://edocs.bea.com/wls/docs61/perform/JVMTuning.html

I would play around with some of the more fine controlled JVM settings.

Berin Loritsch wrote:
> Let me find the link that might be able to help you.  This is not 
> necessarily a Tomcat/Cocoon issue--it has to do with Java's memory 
> management.  You will get OutOfMemoryErrors even when you haven't 
> exceeded the -Xmx2048m command with sufficient load.
>
> The problem has to do with the generational garbage collection that 
> Java itself has.  Basically, your memory is divided up into 
> buckets--if any of them fills up then you get an OutOfMemoryError 
> thrown.  Under normal use, there is no problem.  The JVM has plenty of 
> time to move stale object references from one GC bucket to the next.  
> In a web environment, you can experience peaks that might 
> instantaneously throw you over the edge.
>
> There is a JVM setting that you can use to increase the bucket sizes 
> for the generational garbage collection buckets, and that's what I 
> would need to find the link to.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org