One of my clients has a cluster of two nodes JBoss 4.3 with about 30 web applications with Apache as front-end/balancer.
Currently he observes several administrative problems: frequent PermGen space errors, applications that disturb each other, and so on, in practice the situation is not exactly under control.
I have observed that:
- Not all applications require balancing, it is useless for almost all
- Some applications are very critical, but the majority are not at all
- Most of the applications use only the engine web, even if the configuration contains all the services
- Many applications consume very few resources, others a lot.
- Both nodes (RedHat linux) are virtual machines in a VMware Infrastructure with 3 virtual cores. The infrastructure is HA, so application ridundancy is not really necessary
What I have to do is plan for rationalization. Starting from the two extremes (all applications in one instance and one instance per application) and considering the hardware as is for now, what logic can be applied to make this infrastructure more rational (and manageable)?
If you have different requirements regarding performance and some application should not harmed by others I would seperate them.
It might be good if you have the installation on different boxes (or partitions of a huge server) as a JVM might slow down the complete system.