java - increase - tomcat jvm memory settings
Tomcat 7: ¿Cómo establecer el tamaño de pila inicial correctamente? (9)
¡Cuídate con el cambio en las distribuciones de Debian! Traté de cambiar CATALINA_OPTS
en mi Debian 7 y los resultados donde ese gato ya no comenzó. Así resolví este problema cambiando la propiedad JAVA_OPTS
en lugar de CATALINA_OPTS
, como esta
export JAVA_OPTS="-Xms512M -Xmx1024M"
Estaba intentando ajustar el tamaño de almacenamiento dinámico inicial de una instancia de tomcat 7 (CentOS, versión java: 1.6.0_25-b06) agregando la siguiente línea a catalina.sh:
export CATALINA_OPTS="-Xms=512M -Xmx=1024M"
Iniciando tomcat falla y registra el siguiente mensaje a catalina.out:
Invalid initial heap size: -Xms=512m
Could not create the Java virtual machine.
¿Qué pasa con estas opciones?
Acabo de enterarme de esto y he implementado la solución de Nathan:
agregue la línea (cambiando los valores según sea necesario):
export JAVA_OPTS="-Xms512M -Xmx1024M"
a /usr/share/tomcat7/bin/setenv.sh
Si ese archivo no existe, créelo y
chown root:root it
chmod 755 it
Y luego reinicia Tomcat y compruébalo con
ps aux | grep logging
Que debería tomar la instancia y mostrar los parms de Java
Después de pasar un buen rato en esto. Descubrí que este es el aspecto del setenv.bat. No "se aceptan caracteres en el archivo por lotes.
establecer CATALINA_OPTS = -Xms512m -Xmx1024m -XX: PermSize = 128m -XX: MaxPermSize = 768m
echo hello "% CATALINA_OPTS%"
Funciona incluso sin utilizar la palabra clave ''export''. Esto es lo que tengo en mi setenv.sh (/usr/share/tomcat7/bin/setenv.sh) y funciona.
SO: 14.04.1-Ubuntu Versión del servidor: Apache Tomcat / 7.0.52 (Ubuntu) Servidor construido: 30 de junio de 2016 01:59:37 Número del servidor: 7.0.52.0
JAVA_OPTS="-Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` -server -Xms6G -Xmx6G -Xmn1400m -XX:HeapDumpPath=/Some/logs/ -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:+UseCompressedOops -Dcom.sun.management.jmxremote.port=8181 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dserver.name=$HOSTNAME"
No debes usar =
. Simplemente usa esto:
export CATALINA_OPTS="-Xms512M -Xmx1024M"
Puede que no necesite exportar , simplemente agregue esta línea en catalina.sh :
CATALINA_OPTS="-Xms512M -Xmx1024M"
Use el siguiente comando para aumentar el tamaño del almacenamiento dinámico de java para tomcat7 (distribuciones de Linux) correctamente:
echo ''export CATALINA_OPTS="-Xms512M -Xmx1024M"'' > /usr/share/tomcat7/bin/setenv.sh
Vaya al directorio "Tomcat Directory" / bin
si Linux entonces crea setenv.sh else si Windows luego crea setenv.bat
contenido del archivo setenv. *:
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
después de esto reiniciar tomcat con nuevos params.
explicación e información completa está aquí
http://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-tomcat/
setenv.sh es mejor, porque puede transferir fácilmente dicha configuración de una máquina a otra, o de una versión de Tomcat a otra. catalina.sh cambia de una versión de Tomcat a otra. Pero puede mantener su setenv.sh sin cambios con cualquier versión de Tomcat.
Otra ventaja es que es más fácil hacer un seguimiento del historial de sus cambios si lo agrega a su sistema de copia de seguridad o control de versiones. Si observa cómo setenv.sh los cambios a lo largo del historial, verá solo sus propios cambios. Mientras que si usa catalina.sh, siempre verá no solo los cambios, sino también los cambios que vienen con cada versión más nueva de Tomcat.