viernes, mayo 04, 2018

Optimizando Tomcat7 en Linux CENTOS

Resultado de imagen para configurando tomcat centos
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

     

    Procederemos ahora a configurar los parámetros de la JVM. Los parámetros sobre los que trabajaremos serán:
  • -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
 
Referencias:
Optimizar el Tomcat
Optimizar Tomcat 

miércoles, febrero 21, 2018

Configurar Generador client.cfg




Tomado de: Configurar CLIENT.CFG


Introducción
Muy a menudo, debe editar client.cfg para actualizar la información; por ejemplo, cuando pone una aplicación en producción y no conoce los datos de conexión, usuario, contraseña, etc.
Otro caso típico en el que debe editar este archivo es cuando está monitoreando el grupo de conexiones mientras 'ajusta' su configuración, cambiando el tamaño, los minutos de reciclaje.
Aunque se trata de un archivo de texto, un usuario que no lo conoce tiene dificultades para identificar las claves de las propiedades que desea modificar. Esta es la razón por la cual se implementó la utilidad de configuración del cliente. Permite actualizar client.cfg independientemente de GeneXus, utilizando una interfaz más amigable que permite identificar cada una de las opciones.

Descripción
Para entornos Windows, puede llamarlo desde GeneXus usando el 'Menú desarrollador' - menú 'Utilidades' - opción 'Configuración de cliente de aplicación'

También puede llamarlo manualmente; asegúrese de tener los archivos client.cfg, GxUtils.jar y gxclassr.zip en una carpeta específica. Luego, en una consola, ejecute el siguiente comando:

java -cp GxUtils.jar;.;gxclassr.zip;swt.jar com.genexus.ClientConfig