jueves, abril 21, 2011

TOMCAT6 y configuración de Open Files

Tomado de: http://opencms-wiki.tfsla.com/index.php/TOMCAT6_y_configuraci%C3%B3n_de_Open_FilesTomcat6 y configurar de Open Files

En sitios de alto tráfico, es necesario ajustar la cantidad de 'open files'. A mayor cantidad de conexiones, mayor consumo de archivos abiertos.
Por lo general, la definición de los 'open files' se realiza en /etc/security/limits.conf:
  • soft nofile 16384
  • hard nofile 65000
Los siguientes reportes ponen en evidencia que TOMCATx ignora la definición a nivel del sistema operativo. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=302079 http://ubuntuforums.org/showthread.php?t=1583041

Verificar la ocurrencia del problema

1. Identificar el PID del proceso TOMCAT con el comando 'ps aux | grep tomcat'. En el siguiente ejemplo es PID 8646
root@wp-db:~# ps aux|grep tomcat tomcat6 8646 3.1 18.3 2544488 1506184 ? Sl 06:00 14:02 /usr/lib/jvm/java-6-sun/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xms2048m -Xmx2048m -Duser.language=es -Duser.country=AR -Dfile.encoding=utf-8 -Duser.timezone=GMT-3 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tmp org.apache.catalina.startup.Bootstrap start root 13634 0.0 0.0 7624 928 pts/0 S+ 13:31 0:00 grep --color=auto tomcat
2. Mostrar la configuración para ese PID con el comando 'cat /proc/8646/limits. Buscar en el resultado la línea:


Max open files            1024                 1024                 files
3. Comparar el resultado con la definición en el archivo limits.conf. En caso de haber diferencia, TOMCAT6 no está tomando la configuración de 'open files' correctamente.

Definir open files en configuración de Tomcat6 (solución)

Editar el archivo /etc/init.d/tomcat6 y buscar la siguiente línea:
JVM_TMP=/tmp/tomcat6-tmp
Luego agregar debajo estas dos líneas:
ulimit -Hn 8192
ulimit -Sn 8192
 

Aumentar Memoria RAM

Buscamos la siguiente linea en el archivo catalina.sh, dentro de /usr/local/tomcat/bin, 
# ----- Execute The Requested Command -----------------------------------------
Luego insertamos lo siguiente donde se asigna memoria 2048 MB
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=768m -Xms512M -Xmx2048M"


 
Finalmente, reiniciar el Tomcat.

No hay comentarios: