Isso não está relacionado ao Tomcat, mas é algo com que todo aplicativo Java precisa lidar. Há muitos recursos na rede, por ex. isso:
Dentro do arquivo /etc/tomcat6/tomcat6.conf, a linha de configuração JAVA_OPTS me dá a capacidade de definir limites de memória para o Tomcat.
Por exemplo:
JAVA_OPTS="-Xms256M -Xmx1024M -XX:MaxPermSize=256m -XX:PermSize=128m"
Existe uma maneira de desabilitar totalmente os limites de memória do Tomcat? Eu quero que o Tomcat faça uso de toda a memória disponível - eu não quero limitar artificialmente a JVM com esses parâmetros.
Alternativamente, existe algum dano em tornar esses limites realmente grandes?
Isso não está relacionado ao Tomcat, mas é algo com que todo aplicativo Java precisa lidar. Há muitos recursos na rede, por ex. isso:
Você precisa especificar uma quantidade real de memória.
No entanto, se você der toda a memória do sistema para a JVM, não deixará nada para a própria máquina usar, e, portanto, você provavelmente terá falhas no sistema ou, pelo menos, um desempenho muito ruim. Além disso, se a única correção que você tiver for jogar mais memória na JVM, talvez você queira procurar um código melhor e mais otimizado e fazer o perfil real para encontrar as áreas problemáticas.Eu teria cuidado para não configurá-los, especialmente no caso de um vazamento de memória - que pode ocupar a maioria das (todas?) memórias do seu sistema. Além disso, no caso de uma coleta de lixo, o tempo de pausa do seu aplicativo pode se tornar inaceitável se o uso da memória estiver desmarcado.
O dimensionamento da JVM depende de muitos fatores: a "área útil" de seu aplicativo, a RAM disponível no servidor, outros processos em execução no servidor etc. Você será mais feliz a longo prazo se criar um perfil de seu aplicativo usando alguma carga ferramenta de teste / criação de perfil, examinando seus logs de coleta de lixo, o consumo de recursos do servidor, etc., e ajuste essas configurações, em vez de deixá-las fora. IMO, você deve executar um aplicativo enxuto e bem ajustado (-: