The main document is Performance Tips in the core documentation. Be sure to read and understand the comments in cocoon.xconf and associated component documentation.

See also: Lenya Performance.

See also: CocoonPerformanceResults for results/graphs of one stress testing exercise.

Please add other performance and tuning hints here. They will be merged into the main document:

  • Make sure you have lots of available memory (512 mb minimum).
  • Set the correct JDK memory settings: Xms512M -Xmx512M (both to the same).
  • Set the "maxobjects" (cocoon.xconf) of the transient-store to a high number if you have lots of memory available. It is set to 100 by default which may be too low (depends on your application). I use about 4000 to 8000. Seems to work. Check the samples/status page to ensure that it is not overloading (by reaching the max-objects limit).
  • Set the store-janitor's heapsize in cocoon.xconf higher (by default it is set to use only 64 mb).
  • Set the use-store attribute of the XSLT processor you are using to true.
  • Turn off subsitemap reloading (only for deployment!).
  • See WritingForCacheEfficiency.
  • See also StoreComponents.
  • Using FOP or Batik is more memory consuming.
  • Switch off reloading of flowscripts in cocoon.xconf, under //flow-interpreters/component-instance[[@name='javascript']
  • Upgrading to Java 5 and Tomcat 5.5 may result in a smaller memory footprint (approximately 25%) and noticeable performance gains.

Additional notes: When setting JDK memory remember that JVMs on most systems can only use upto 1800Meg (see I think sun systems can handle upto 4 gig, I'm not sure about all the 64 bit systems that are cropping up.

Another important change to configuration in the cocoon.xconf. It is related to use-persistent-cache:

<transient-store logger="">
   <parameter name="maxobjects" value="1000"/>
   <parameter name="use-persistent-cache" value="false"/>
  • No labels