2008-11-13 21 views
42

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.Cómo ajustar Tomcat 5.5 JVM Configuración de memoria sin usar el programa de configuración

Según el comentario siguiente, 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.

Respuesta

70

La sugerencia de Serhii funciona y aquí hay más detalles.

Si mira en el directorio bin de su instalación, verá las secuencias de comandos 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 el en la parte superior de catalina.sh/bat. Para utilizar las crean, por ejemplo, un archivo $ CATALINA_HOME/bin/setenv.sh con contenidos

export JAVA_OPTS="-server -Xmx512m" 

Para Windows que se necesitan, en setenv.bate, algo así como

set JAVA_OPTS=-server -Xmx768m 

Espero que esto ayude, Glenn

+2

"Alguna otra" guía omitió poner el comando "exportar" y tomcat no se inició. Debería haberlo averiguado ya que es, después de todo, un archivo .sh ... pero gracias por deletrearlo tan bien para un codificador somnoliento ... – jsh

+0

Por alguna razón, el paquete RPM (por ejemplo, en CentOS) para tomcat6 tiene un init.d que no utiliza catalina.sh (que es el que llama setnev.sh) por lo que en otras palabras - en CentOS /etc/tomcat6/tomcat6.conf es el lugar para este tipo de configuraciones –

5

Utilice la variable de entorno CATALINA_OPTS.

+0

He intentado CATALINA_OPTS, también.Estoy bastante seguro de que solo funciona para Tomcat 4.0 y versiones anteriores. – red

+0

Puedo garantizar que funciona para 5.0.28. Verifique startup.bat/sh y catalina.bat/sh para verificar lo que se está usando. Tal vez está pasando los argumentos en el formato incorrecto? –

1

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 Lambda Probe.

Muestra la mayoría de la información que necesitamos para el ajuste 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 finales de 2006.

1

Si arranca Tomcat manualmente (no como servicio), la variable de entorno CATALINA_OPTS es la manera ir. 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 clave HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java.

2

Solo para agregar al comentario anterior, la documentación de 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) es here. Esta herramienta actualiza el registro con la configuración adecuada. lo tanto, si se quiere actualizar la configuración para el servicio Tomcat podría ejecutar este (desde el directorio tomcat/bin) de memoria máximo, asumiendo el nombre de servicio por defecto de Tomcat5:

tomcat5 //US//Tomcat5 --JvmMx=512 
24

Crear una setenv (sh |. bate) archivo en el directorio tomcat/bin con las variables de entorno que desea 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 ha creado el script setenv y es por eso que tomcat está ignorando las variables de entorno.

+1

Esta solución, complementada con la solución de Glenn, funcionó bien para mí. –

3

utilizo siguiente setenv.bat contenidos:

==============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 puerto de depuración a 7777, y añade el contenido anterior de JAVA_OPTS.

3

Práctico para máquinas virtuales Linux; Use el 75% de la memoria total de su sistema para Tomcat. Yay AWK.

Ponga al comienzo del "Tomcat {} /bin/startup.sh"

export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k" 
2

me gusta la idea de tomcat6 doten de memoria basado en la memoria del servidor disponible (que es genial, porque no tengo a cambiar la configuración después de la actualización del hardware). Aquí está mi (una configuración muy poco extendida memoria):

CATALINA_OPTS exportación = "- -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 = k `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` -XX: MaxNewSize = k `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` -XX: PermSize = k `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` -XX: MaxPermSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` k"

ponerlo a: "{tomcat} /bin/startup.sh"(por ejemplo "/ usr/share/tomcat6/bin" para Ubuntu 10.10)

5

Si usando 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, se puede comprobar la configuración a través de ps-ef | grep tomcat :)

0

Simplemente edite su secuencia de comandos catalina/bin/startup.sh. Añadir los siguientes comandos en ella:

#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 

Sailab: http://www.facejar.com/member/page-id-477.html

1

Si ejecuta Tomcat en Windows, puede utilizar la aplicación ordenada "Tomcat Monitor" que se incluye con Tomcat.

Vaya a la pestaña Java. En la parte inferior, por debajo del área de texto "Opciones de Java", se encuentran 3 campos de entrada:

  • bloque de memoria inicial _ __ MB
  • bloque de memoria máxima _ __ MB
  • Tema tamaño de la pila _ ____ KB
+0

he cambiado esto y guardar. Pero cuando trato de volver a iniciarlo, el gato no se está iniciando. Una vez que cambio de nuevo al tamaño de memoria predeterminado, puedo iniciar tomcat de nuevo. ¿Puedes sugerir qué hacer? – Ankita

+0

@Ankita Ya no trabajo con Tomcat ... es demasiado complicado. Cambié a Node.js –

+0

Bien. Gracias por su respuesta. – Ankita

0

En mi caso había un archivo /etc/sysconfig/tomcat5.conf sobreescribiendo todas las configuraciones en /etc/tomcat5/tomcat5.conf

Cuestiones relacionadas