Estou tentando executar o tomcat em um sistema com pouca memória (150-256Mb). Mesmo iniciando a JVM com -Xmx64m (que deve ser o padrão de qualquer maneira), o processo ocupa imediatamente 200Mb +.
Gostaria de saber por que a JVM precisa de tanta memória em si, ou se existe uma maneira de ajustar isso? Outras JVMs são melhores que a Sun para baixo consumo de memória - e elas funcionam com o tomcat?
Com a opção -Xmx, você restringe o tamanho do heap que a JVM reserva ... Existem recursos adicionais que a JVM precisa ...
"Obrigado pela memória" * é um bom artigo que explica como uma JVM usa memória ...
Além disso, você pode tentar a JVM da IBM, que deve funcionar com o Tomcat, não sei se algumas das implementações gratuitas da JVM funcionam.
No entanto, não acho que uma máquina com memória tão baixa faça bem a você. Java só precisa de memória.
* Como os novos usuários não podem enviar hiperlinks, você mesmo deve procurar esse artigo ... é o primeiro hit do google por "obrigado pela memória ibm".
fonte
Tente também o JRockit JVM, que possui menos espaço na memória. Você ainda pode fazer o download das versões do JRockit licenciadas pela BEA gratuitamente. ou seja, versões antes da Oracle assumir a BEA.
Consulte http://forums.oracle.com/forums/thread.jspa?threadID=816133&tstart=0 para obter links para download.
fonte
Uma técnica útil que encontrei é usar o monitoramento JMX para ver exatamente quanta memória é usada pelo espaço heap vs permgen.
Configure o JMX no Tomcat conforme descrito aqui http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
Em seguida, use o JConsole (fornecido com o JDK 5 ou JDK 6) - o tag de memória acompanhará o consumo de memória ao longo do tempo.
Também - cuidado com reinicializações suaves de aplicativos da web. Se você recarregar um aplicativo da web, o espaço permgen não será coletado como lixo e será acumulado ao longo do tempo. Você precisa fazer uma parada / partida completa do Tomcat para recuperar o espaço permgen.
fonte