java - optimizar - Cómo ajustar la configuración de la memoria JVM de Tomcat 5.5 sin utilizar el programa de configuración
optimizar tomcat (13)
Necesito configurar los ajustes de memoria de Tomcat como parte de una instalación más grande, por lo que configurar manualmente Tomcat con la aplicación de configuración después de que el hecho esté fuera de cuestión. Pensé que podría simplemente colocar la configuración de memoria JVM en la variable de entorno JAVA_OPTS, pero estoy probando eso con jconsole para ver si funciona y ... no.
Según el comentario a continuación, CATALINA_OPTS tampoco funciona. Hasta ahora, la única forma en que puedo hacer que funcione es a través de la GUI de configuración de Tomcat, y esa no es una solución aceptable para mi problema.
Cree un archivo setenv. (Sh | bat) en el directorio tomcat / bin con las variables de entorno que desee modificar.
El script catalina comprueba si el script setenv existe y lo ejecuta para establecer las variables de entorno. De esta forma puede cambiar los parámetros a solo una instancia de tomcat y es más fácil copiarlo a otra instancia.
Probablemente su aplicación de configuración haya creado el script setenv y es por eso que tomcat está ignorando las variables de entorno.
En mi caso, había un archivo /etc/sysconfig/tomcat5.conf sobrescribiendo todas las configuraciones en /etc/tomcat5/tomcat5.conf
La sugerencia de Serhii funciona y aquí hay más detalles.
Si busca en el directorio bin de su instalación, verá los scripts catalina.sh o .bat. Si observa estos, verá que ejecutan un script setenv.sh o setenv.bat respectivamente, si existe, para establecer variables de entorno. Las variables de entorno relevantes se describen en los comentarios en la parte superior de catalina.sh/bat. Para usarlos crea, por ejemplo, un archivo $ CATALINA_HOME / bin / setenv.sh con contenido
export JAVA_OPTS="-server -Xmx512m"
Para Windows necesitarás, en setenv.bat, algo así como
set JAVA_OPTS=-server -Xmx768m
Espero que esto ayude, Glenn
Me gusta la idea de elegir memoria tomcat6 en función de la memoria disponible del servidor (es genial porque no tengo que cambiar la configuración después de la actualización del hardware). Aquí está mi (configuración de memoria un poco extendida):
export CATALINA_OPTS = "- Xmx`
`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.75 } ''`
k -Xms`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.75 } ''`
k -XX: NewSize =`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.15 } ''`
k -XX: MaxNewSize =`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.15 } ''`
k -XX: PermSize =`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.15 } ''`
k -XX: MaxPermSize =`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.15 } ''`
k ''
Ponlo a: "{tomcat} /bin/startup.sh" (por ejemplo, "/ usr / share / tomcat6 / bin" para Ubuntu 10.10)
No estoy seguro de que sea una solución aplicable para usted. Pero la única forma de controlar la configuración de la memoria tomcat, así como la cantidad de conexiones, etc. que en realidad nos funciona es la Sonda Lambda .
Muestra la mayoría de la información que necesitamos para el ajuste de Tomcat. Lo probamos con Tomcat 5.5 y 6.0 y funciona bien a pesar del estado beta y la fecha de la última actualización a fines de 2006.
Práctico para máquinas virtuales de Linux; Use el 75% de la memoria total de su sistema para Tomcat. Yay AWK.
Poner al comienzo de "{tomcat} /bin/startup.sh"
export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk ''{ print $2*0.75 } ''`k"
Si ejecuta Tomcat en Windows, puede usar la ordenada aplicación "Tomcat Monitor" que se envía con Tomcat.
Ve a la pestaña Java. En la parte inferior, debajo del área de texto "Opciones de Java", encontrará 3 campos de entrada:
- Grupo de memoria inicial _ __ MB
- Cantidad máxima de memoria _ __ MB
- Tamaño de la pila de subprocesos _ ____ KB
Si inicias Tomcat manualmente (no como servicio), la variable de entorno CATALINA_OPTS es el camino a seguir. Si lo inicia como un servicio, entonces la configuración probablemente esté almacenada en algún lugar del registro. Tengo Tomcat 6 instalado en mi máquina y encontré la configuración en la HKLM/SOFTWARE/Apache Software Foundation/Procrun 2.0/Tomcat6/Parameters/Java
.
Si usa Ubuntu 11.10 y apache-tomcat6 (instalando desde apt-get), puede poner esta configuración en /usr/share/tomcat6/bin/catalina.sh
# -----------------------------------------------------------------------------
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m /
-Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m /
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
Después de eso, puede verificar su configuración a través de ps -ef | grep tomcat :)
Simplemente edite su secuencia de comandos catalina / bin / startup.sh. Agregue los siguientes comandos en él:
#Adjust it to the size you want. Ignore the from bit.
export CATALINA_OPTS="-Xmx1024m"
#This should point to your catalina base directory
export CATALINA_BASE=/usr/local/tomcat
#This is only used if you editing the instance of your tomcat
/usr/share/tomcat6/bin/startup.sh
Solo para agregar al comentario anterior, la documentación para la herramienta de línea de comandos para actualizar la configuración del servicio Tomcat (si Tomcat se está ejecutando como un servicio en Windows) está here . Esta herramienta actualiza el registro con la configuración adecuada. Por lo tanto, si desea actualizar la configuración de memoria máxima para el servicio Tomcat, puede ejecutar esto (desde el directorio tomcat / bin), asumiendo el nombre de servicio predeterminado de Tomcat5:
tomcat5 //US//Tomcat5 --JvmMx=512
Use la variable de entorno CATALINA_OPTS
.
Uso los siguientes contenidos de setenv.bat
:
==============setenv.bat============
set JAVA_OPTS=-XX:MaxPermSize=256m -Xms256M -Xmx768M -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n %JAVA_OPTS%
====================================
También permite la depuración y establece el puerto de depuración en 7777, y agrega el contenido anterior de JAVA_OPTS
.