replegar - java para tomcat
Cómo aumentar el espacio de almacenamiento dinámico de Java para una aplicación tomcat (8)
Debe agregar las siguientes líneas en su archivo catalina.sh
.
export CATALINA_OPTS="-Xms512M -Xmx1024M"
ACTUALIZACIÓN : el contenido de catalina.sh
dice claramente:
No establezca las variables en este script. En su lugar, colóquelos en un script setenv.sh en CATALINA_BASE / bin para mantener sus personalizaciones separadas.
Entonces puede agregar lo anterior en setenv.sh en su lugar (cree un archivo si no existe).
Hay muchas preguntas que hacen esta o una pregunta similar.
Todos dan el comando que debe ejecutarse, lo que no entiendo es dónde escribo este comando. Quiero aumentar permanentemente el espacio de almacenamiento dinámico para mis aplicaciones de tomcat.
Leí esta página y dice debajo de la sección Tomcat
Detenga el servidor Tomcat, establezca la variable de entorno CATALINA_OPTS y luego reinicie Tomcat. Mire el archivo tomcat-install / bin / catalina.sh o catalina.bat para ver cómo se usa esta variable. Por ejemplo,
establecer CATALINA_OPTS = -Xms512m -Xmx512m (Windows, no "" alrededor del valor)
exportar CATALINA_OPTS = "- Xms512m -Xmx512m" (ksh / bash, "" alrededor del valor)
setenv CATALINA_OPTS "-Xms512m -Xmx512m" (tcsh / csh, "" alrededor del valor)
Así que reemplacé la línea
establecer CATALINA_OPTS =
con
establecer CATALINA_OPTS = -Xms512m -Xmx512m
Pero todavía obtengo el error.
javax.servlet.ServletException: la ejecución del servlet arrojó una excepción
causa principal
java.lang.OutOfMemoryError: espacio de pila Java java.lang.reflect.Array.multiNewArray (método nativo) java.lang.reflect.Array.newInstance (Array.java:90) nom.tam.util.ArrayFuncs.newInstance (ArrayFuncs. java: 1028) nom.tam.fits.ImageData.read (ImageData.java:259) nom.tam.fits.Fits.readHDU (Fits.java:573) controller.UploadServlet.retreiveFITSFileFields (UploadServlet.java:206) controller. ScanServerFiles.doPost (ScanServerFiles.java:39) javax.servlet.http.HttpServlet.service (HttpServlet.java:637) javax.servlet.http.HttpServlet.service (HttpServlet.java:717)
En primer lugar, no puede cambiar la configuración de memoria solo para una aplicación tomcat, sino para todas las instancias de tomcat.
Si está ejecutando tomcat desde la consola (usando startup.bat) necesitará editar catalina.bat y jugar con CATALINA_OPTS. Por ejemplo:
set CATALINA_OPTS=-Xms512m -Xmx512m
Al reiniciar Tomcat se aplicarán las nuevas configuraciones.
Si todavía está obteniendo OutOfMemoryError, necesita saber cuánta memoria necesita su aplicación en ese momento en particular (nom.tam.util.ArrayFuncs ...). Deberá optimizar la aplicación o simplemente aumentar la memoria proporcionada a tomcat.
Simplemente establece esta línea adicional en el archivo catalina.bat
LÍNEA NO ALREDEDOR: 143
set "CATALINA_OPTS=-Xms512m -Xmx512m"
Y reinicie el servicio de Tomcat
Tu cambio bien puede estar funcionando. ¿Su aplicación necesita mucha memoria? El rastreo de la pila muestra algunas características relacionadas con la imagen.
Supongo que el error ocurre de inmediato, con un archivo grande, o sucede más tarde después de varias solicitudes.
Si el error ocurre de inmediato, puede aumentar aún más la memoria o investigar por qué se necesita tanta memoria para un archivo.
Si el error ocurre después de varias solicitudes, entonces podría tener una pérdida de memoria, donde el recolector de basura no está reclamando los objetos. El uso de una herramienta como JProfiler puede ayudarlo a controlar la cantidad de memoria utilizada por su máquina virtual y puede ayudarlo a ver qué está usando esa memoria y por qué los objetos no están siendo recuperados por el recolector de basura.
puedes configurar esto en catalina.sh como CATALINA_OPTS = -Xms512m -Xmx512m
Abra su archivo tomcat-dir / bin / catalina.sh y agregue la siguiente línea en cualquier lugar:
CATALINA_OPTS="$CATALINA_OPTS -Xms1024m -Xmx3024m"
y reinicia tu tomcat
si usas Windows, es muy simple. Simplemente diríjase a las variables de System Environnement (haga clic derecho en Computer> Properties> Advanced System Parameters> Environnement Variables); crea una nueva variable de sistema con nombre = CATALINA_OPTS y valor = -Xms512m -Xmx1024m. reinicia Tomcat y disfruta!
Hay un mecanismo para hacerlo sin modificar ningún archivo que esté en la distribución. Puede crear un archivo separado %CATALINA_HOME%/bin/setenv.bat
o $CATALINA_HOME/bin/setenv.sh
y colocar allí sus variables de entorno. Además, la configuración de la memoria se aplica a la JVM, no a Tomcat, por lo que establecería la variable JAVA_OPTS
lugar:
set JAVA_OPTS=-Xmx512m
- Abra la pestaña del servidor en eclipse
- clic derecho abrir
- haga clic en la configuración abrir lauch
- Ir a argumentos
Aquí puede agregar argumentos de máquina virtual después de aprobarse
-Xms64m -Xmx256m