Configuración de la Máquina Virtual de Java ( JVM

)
Para lograr tener una mayor disponibilidad del servicio así como un mayor soporte a la carga de peticiones es
necesario configurar el servidor de aplicaciones Apache Tomcat. Para esto, se agregarán los siguientes parámetros
en el archivo de configuración $TOMCAT_HOME/bin/setenv.bat en el caso de Windows,
$TOMCAT_HOME/bin/setenv.sh en el caso de Linux si se descomprimió y se levantó el servicio manualmente o
en /etc/tomcat6/tomcat6.conf si se instaló el servidor mediante el repositorio:
-Xms y -Xmx. Estos valores se usan para definir el tamaño de la pila usada por la JVM. -Xms define el valor
inicial y -Xmx define el valor máximo. Es recomendable que el valor inicial y final sea el mismo, lo que
inicializará la pila a su máxima capacidad y así se prevendrá la ejecución de recolecciones de basura completos
mientras la pila se expande.
-XX:PermSize y -XX:MaxPermSize. Estas opciones son usadas para definir el tamaño del espacio de generación
permanente, que se refiere a la localidad donde la JVM guarda los archivos de clase que son cargados en la
memoria. -XX:PermSize define el valor inicial y -XX:MaxPermSize define el valor máximo. Es recomendable
que los valores inicial y final sean el mismo. Una buena definición de estos valores nos ayudan a evitar el error
java.lang.OutOfMemoryError: PermGen space.

-Xss. Este valor determina el tamaño de la pila para cada hilo en la JVM. El valor específico que se debe usar
depende de los requerimientos de la aplicación, sin embargo el valor definido por default suele ser demasiado
grande. Para una instalación típica este valor puede ser más bajo, ahorrando memoria e incrementando el número
de hilos que se pueden lanzar en el sistema. Si el sistema llegara a arrojar una excepción del tipo StackOverFlow

este valor tendría que ajustarse a un valor más alto, típicamente entre los 128k y 1024k.
-server. Esta opción le dirá a la JVM que está corriendo en un servidor de aplicaciones y que las configuraciones
default cambiarán en consecuencia. Esta opción se encuentra activa por default en todos los Sistemas Operativos
de 64 bits ya que no existen Máquinas Virtuales cliente de 64 bits.
Windows:
copiar y pegar o modificar el archivo setenv.bat en $TOMCAT_HOME/bin/
Linux (descompresión):
copiar y pegar o modificar el archivo setenv.sh en $TOMCAT_HOME/bin/
Linux (repositorio):
copiar el contenido del archivo tomcat6.conf en /etc/tomcat6/tomcat6.conf

Esto se puede hacer modificando el valor de este atributo en el conector. Si se pone un valor demasiado alto a este parámetro el inicio de Tomcat puede tardar mucho y consumir demasiada memoria. este comienza a poner las peticiones entrantes en espera hasta que al menos una quede libre. en lugar de tener un servidor con un valor de maxThread de 1000 tendremos 2 instancias con un valor de 500 en cada uno. se debe agregar este atributo a la definición del conector en el archivo $TOMCAT_HOME/conf/server. en cuyo caso. Este atributo define el tamaño máximo de la cola de peticiones en espera. así que esta parte debe ser manejada cuidadosamente para obtener el mejor desempeño.Configuración del pool de conexiones maxThread.xml. <Connector port="8080" protocol="HTTP/1. el valor default es de 200. Para arreglar este problema. Si el número de peticiones excede las 750. ya que si es demasiado bajo no habrá suficientes hilos para manejar todas las peticiones. <Connector port="8080" protocol="HTTP/1. Si no se especifica. Algunas versiones de Tomcat usan el iso-8859-1 para decodificar URLs. Cuando el servidor ha asignado todas las conexiones definidas en el pool de conexiones. El pool de conexiones especifica el número de peticiones web que el servidor aceptará. si tenemos 1000 peticiones. por ejemplo. lo que causará un error del tipo “connection refused”. <Connector port="8080" protocol="HTTP/1. lo cual está en clara violación de los estándares RFC. El valor por default es 100. en lugar de poner el valor 750 en el atributo maxThread sería mejor pensar en un "Clúster de Servidores" con múltiples instancias de Tomcat.1" maxThreads="512"/> Cola de peticiones acceptCount. Cualquier petición recibida cuando la cola este llena será rechazada. El valor exacto puede ser determinado solo mediante las pruebas de la aplicación en diferentes ambientes.1" acceptCount="128"/> i18n URIEncoding. Este valor deberá estar basado en el volumen del tráfico de la aplicación.1" URIEncoding="UTF-8"/> .

xml y agregar o cambiar el valor del atributo autoDeploy a "false" en el Host apropiado. Para desactivar estas opciones . Si no se desea que los JSP sean revisados por alguna modificación cada vez que hay una petición se debe poner el valor del atributo development a false. De igual manera. <Host name=”localhost” appBase=”webapps” unpackWARs=”true” autoDeploy=”false” xmlValidation=”false” xmlNamespaceAware=”false”/> Desactivar la recarga y el modo de desarrollo de los JSP development and reloading.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>development</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>reloading</param-name> <param-value>false</param-value> </init-param> … </servlet> .apache. <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.jasper. es automáticamente desplegado. se debe modificar la definición del JspServlet en el archivo $TOMCAT_HOME/conf/web. y tan pronto un archivo WAR es copiado ahí.Desactivar la recarga y el auto-desplegado de la aplicación web autoDeploy.servlet. Estos 2 atributos controlan el comportamiento de la compilación de los JSP en Tomcat. Si bien esta característica es grandiosa para ambientes de desarrollo. Para desactivar esta opción. Por default. tiene un impacto en el desempeño y debe ser deshabilitada en producción. si no se desea que los JSP se compilen automáticamente después de un periodo de tiempo. se debe editar el archivo $TOMCAT_HOME/conf/server.xml. Tomcat monitorea el directorio $TOMCAT_HOME/webapps en espera de nuevas aplicaciones web. se debe poner el valor del atributo reloading a false. Por default. estos atributos tienen el valor true y un intervalo de revisión y recarga de 300 segundos.

php3/stat/3/srodzaj/1/search/epel-release e instalar con el comando rpm -Uvh epel-release*rpm Ejecutar la instrucción yum install tomcat-native para descargar e instalar la versión actual de la Librería Nativa de Tomcat desde los repositorios de epel. su valor default es true. CentOS 6 Linux: Descargar el repositorio epel acorde a la versión del Sistema Operativo (CentOS 6) desde http://rpm. . Para activarlo explícitamente. Este atributo especifica si el pool de etiquetas personalizadas está habilitado o no.net/index. <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.Activar el pool de Custom Tags enablePooling. una mejor integración con las tecnologías de servidor nativas y un rendimiento óptimo en entornos de producción.dll( 32 o 64 bits ) y pegarlo en la carpeta $TOMCAT_HOME/bin/.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>enablePooling</param-name> <param-value>true</param-value> </init-param> … </servlet> Librería Nativa de Tomcat La Librería Nativa de Tomcat ("Apache Portable Runtime (APR)") proporciona una escalabilidad y desempeño superior. se debe modificar la definición del JspServlet en el archivo $TOMCAT_HOME/conf/web.apache.servlet.jasper.xml.pbone. Windows: Descargar la versión actual de la Librería Nativa de Tomcat. Si no se encuentra. copiar el archivo tcnative-1.