Estoy tratando de ejecutar tomcat en un sistema con poca memoria (150-256Mb). Aunque inicio la JVM con -Xmx64m (que debería ser el valor predeterminado de todos modos), el proceso inmediatamente toma 200Mb +.
Me pregunto por qué la JVM necesita tanta memoria en sí misma, o si hay una forma de ajustar esto. ¿Son otras JVM mejores que la Sun para un bajo consumo de memoria? ¿Funcionan con Tomcat?
Con la opción -Xmx, restringe el tamaño del montón que reserva la JVM ... Hay recursos adicionales que necesita la JVM ...
"Gracias por la memoria" * es un buen artículo que explica cómo una JVM usa memoria ...
Aparte de eso, podría probar JVM de IBM, debería funcionar con Tomcat, no sé si algunas de las implementaciones gratuitas de JVM funcionan.
Sin embargo, no creo que una máquina con poca memoria te sirva de nada. Java solo necesita memoria.
* Como los nuevos usuarios no pueden enviar hipervínculos, debe buscar ese artículo usted mismo ... es el primer éxito en Google por "gracias por la memoria ibm".
fuente
Pruebe también el JRockit JVM, que tiene menos huella de memoria. Todavía puede descargar versiones de JRockit con licencia BEA de forma gratuita. es decir, versiones antes de que Oracle se hiciera cargo de BEA.
Consulte http://forums.oracle.com/forums/thread.jspa?threadID=816133&tstart=0 para ver los enlaces de descarga.
fuente
Una técnica útil que he encontrado es usar el monitoreo JMX para ver exactamente cuánta memoria usa el espacio de almacenamiento dinámico frente a permgen.
Configure JMX en Tomcat como se describe aquí http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
Luego use JConsole (viene con JDK 5 o JDK 6): la etiqueta de memoria rastreará el consumo de memoria con el tiempo.
Además, tenga cuidado con los reinicios suaves de aplicaciones web. Si vuelve a cargar una aplicación web, el espacio permgen no se recogerá y se acumulará con el tiempo. Debes hacer una parada / inicio completo de Tomcat para recuperar el espacio permgen.
fuente