I've found that with HR2 of SDL Tridion 2011SP1 a new file is included in the configuration samples (
<!-- This file can be used to send application specific JVM arguments. --> <VirtualMachine> <Options> <!-- Add the Option tag to define specific JVM options. The Option tag can define the MaximumHeapSizeInMB (-Xmx), the InitialHeapSizeInMB (-Xms) and other JVM properties(-D). --> <!-- <Option Name="-Xmx" Value="400m"/> <Option Name="-Xms" Value="50m"/> --> <!-- <Option Name="-Dfile.encoding" Value="UTF-8"/> --> </Options> </VirtualMachine>`
I've uncommented the
-Xms options and set them to 50m/20m but I'm not seeing any difference in memory consumption of the website (still roughly 150m).
The memory consumption is not coming from the .Net runtime (private bytes in all heaps is <10m) so I'm assuming it's the Java runtime...
Edit: after trying the hints provided by the answers given here i've decided to give up on trying to make the JVM behave memory-wise; the only solution to not have an individual website eat up at least 130MB memory is to not have a JVM. I suppose Java and small memory footprint will just never be friends. I'm accepting Bart's answer as the solution as there is simply no way to control all of a JVMs memory usage. Thanks to all for contributing!