Dispongo en la actualidad de un servidor con las siguientes caracteristicas:
1.- 2GB de Ram
2.- 100GB de disco.
Conocer el tamaño de memoria del servidor:
free -m cat /proc/meminfo
Conocer version del sistema operativo:
rpm --query centos-release
cat /etc/centos-release
cat /etc/os-release
cat /etc/system-release
cat /etc/redhat-release
He procedido a instalar Tomcat7 con OpenJdk7.
Al inicio se presentaba una serie de dificultades, el rendimiento no fue muy bueno, en virtud de ello se procedió a realizar los siguientes cambios.
Parámetros de la JVM
- -Djava.awt.headless=true
- -Xms256m
- -Xmx768m
- -XX:MaxPermSize=256m
- -DGEOEXPLORER_DATA
-Djava.awt.headless=true
Esta opción valor true le indica a Java que trabajaremos sin interfaz gráfica.-Xms256m -Xmx768m
Con estos parámetros definiremos el tamaño del heap o memoria que Java. Los objetos de Java residen en una zona llamada heap. El heap se crea cuando la JVM se inicia y puede aumentar o disminuir de tamaño mientras se ejecuta la aplicación. Cuando la pila se llena, se recoge la basura, se inicia el proceso del Garbage Collector. Durante la recogida de basura, los objetos que ya no se utilizan se borran, con lo que se crea espacio para los nuevos objetos.Algunas recomendación será que en producción es interesante que Xmx (Máximo tamaño del heap) y Xms (Mínimo tamaño del heap) sean idénticos.
-XX:MaxPermSize=256m
La JVM tiene un espacio permanente para alojar objetos, el Permanent Generation. Será el espacio dinde se alojan las clases y los métodos.Se ha deprecado esta opción en Java 8 cambiándola por el Metaspace del que podremos definir el > tamaño máximo que podrá ocupar de la memoria del servidor.
Aplicar parámetros a la JVM.
Antes de aplicar los parámetros, realizaremos la misma prueba anterior con JMeter para comprobar el rendimiento sin estos. Para ver las opciones con las que está trabajando tomcat podremos ejecutar:
ps -ef | grep tomcat7
Donde podremos observar que tiene una memoria máxima por defecto
Para aplicar los parámetros anteriores, podremos utilizar varios métodos.
Uno de ellos será definir un archivo setenv.sh en la carpeta $TOMCAT_HOME/bin con la siguiente estructura:
#!/bin/bash
export JAVA_OPTS="-Djava.awt.headless=true -Xms1024m -Xmx1024m"
service tomcat7 restart
Comprobamos las modificaciones.
ps -ef | grep tomcat7
Modificar Numero de Conexiones.
<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="600000"
redirectPort="8443"
enableLookups="false"
maxThreads="1500"
compressableMimeType="text/html,text/xml,text/plain,text/css,application/x-javascript,text/vnd.wap.wml,text/vnd.wap.wmlscript,application/xhtml+xml,application/xml-dtd,application/xslt+xml"
compression="on"/>
Reiniciar el tomcat
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="600000"
redirectPort="8443"
enableLookups="false" maxThreads="1500"
compressableMimeType="text/html,text/xml,text/plain,text/css,application/x-javascript,text/vnd.wap.wml,text/vnd.wap.wmlscript,application/xhtml+xml,application/xml-dtd,application/xslt+xml"
compression="on"/>
Fuente: https://www.enmimaquinafunciona.com/pregunta/2454/apache-tomcat-ahoga-despues-de-300-conexiones
Fuente: https://www.enmimaquinafunciona.com/pregunta/2454/apache-tomcat-ahoga-despues-de-300-conexiones
Referencias:
Optimizar el Tomcat
Optimizar Tomcat