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 http://www.theserverside.com/discussions/thread.jsp?thread_id=19442) 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="core.store.transient"> <parameter name="maxobjects" value="1000"/> <parameter name="use-persistent-cache" value="false"/> </transient-store>