What are the tradeoffs between using a single JRE versus running multiple, separate instances of the JVM for a complex application like an application server?

Ravi Hegde

One of the major problems with JVM is garbage collection. When running small, short-lived applications there are not significant problems with Garbage Collection.

However, in the case of an Application Servers, which must service clients for long durations, memory usage is high and the amount of work required by the Garbage Collector is in turn high. This can lead to the following problems: Slow Garbage Collection or the Garbage Collector taking large amounts of time/resources to complete its' cycles.

So, for scalability, it is better to run multiple VMs - making each VM use only 100 - 200 megs of memory. There are some Application Servers that do this - see GemStone's Extreme Clustering for an example.