Há alguma vantagem de uso de memória para executar vários WARs na mesma JVM, mas, por outro lado, você terá mais contenção e possíveis pausas completas maiores do GC com uma grande JVM. Alguns aplicativos da JVM, como o Jenkins, podem consumir muita memória, o que pode direcionar sua solução.
Como um guia de dimensionamento aproximado, eu faria o seguinte:
- Reserve 500 MB para o SO
- Aloque de 1 a 2 GB por JVM
- Use essas figuras para determinar quantas JVMs você pode executar em uma caixa. Não é uma boa ideia confiar em swap para JVMs ativas.
- Configure o heap inicial (-Xms) e o heap máximo (-Xmx) para o mesmo valor