Está en la página 1de 13

INFRAESTRUCTURA PROMAD

Reporte Ejecutivo Hilos de


Tomcat

Reporte ejecutivo
mejora de rendimiento
de solución ORDS

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 2 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

ÍNDICE

Objetivo General

Objetivos Específicos

Metodología

Análisis de resultados

Solución de ORDS en contenedor

Fichero de configuración

Conclusión

ww.promad.com.mx reproducción total, o parcial contenido


+5255 5257 5993 en este documento.
Página Página 3 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Objetivo General

Mejorar el funcionamiento de los componentes ORDS e hilos de tomcat en los ambientes


de prueba del sistema CAD de Promad Soluciones Computarizadas S.A. de C.V.

Objetivos Específicos

● Determinar el nivel óptimo de hilos de tomcat necesarios para el correcto


procesamiento de peticiones en C5.
● Comparar el rendimiento de la solución ORDS en tecnología de contenedor
(docker) versus una solución “standalone”.

ww.promad.com.mx reproducción total, o parcial contenido


+5255 5257 5993 en este documento.
Página Página 4 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Metodología

Para realizar las pruebas de estrés del sistema y medición de los valores de rendimiento
del sistema se utilizaron las siguientes herramientas:

● Software de automatización de creación de folios de CAD (robots jmeter -


selenium).
● Utilidades del sistema operativo para visualizar el rendimiento (top).

Dentro del alcance de las pruebas se consideró el uso de utilidades del sistema operativo,
debido a que se pretende hacer un análisis más profundo de la cantidad de subprocesos
que se utilizan en un ambiente similar a C5, con el fin de obtener los valores mínimos y
máximos que cada una de las soluciones debe considerar para un rendimiento óptimo.

La intención de este análisis es descubrir cuántos recursos del servidor son necesarios
para soportar la transaccionalidad de las peticiones que se tienen en el entorno de
producción de C5, para realizar esta actividad se ha tomado como prueba un servidor de la
plataforma AWS que cuenta con características iguales a los servidores de bases de datos
de C5 las cuales consisten en un sistema operativo CentOS 7.9 con 32 vCPU y 128 GB de
memoria RAM.

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 5 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Análisis de resultados

Ambiente productivo

Imagen 1. Hilos (threads) asignados por el sistema operativo al servicio Tomcat (334 hilos)

Durante el incidente reportado el día 28 de enero de 2022 con el número de ticket 1112464
los parámetros de sistema (mediante la utilidad TOP con los argumentos {‘f', ‘seleccionar la
opción nTH’, ‘s’ y ‘q’}) detectados fueron los siguientes: el proceso de Java registró un
incremento de hilos de 334, lo cual detona en la saturación e incremento de sesiones de
ORDS, por lo que se procede con el protocolo de limpieza de sesiones de ORDS para
restablecer la operatividad.

Ambiente de pruebas

Para este apartado se utilizó la utilidad TOP (con los parámetros ajustados para visualizar
los hilos consumidos por proceso {‘f', ‘seleccionar la opción nTH’, ‘s’ y ‘q’} ), donde se
apreció la cantidad de recursos que el sistema operativo asignó al servicio de Tomcat,
puntualmente mediante el uso de la utilidad top se determinaron los valores máximos que
asigna el sistema operativo:

Imagen 2. Hilos (threads) asignados por el sistema operativo al servicio Tomcat (306 hilos)

Como se puede apreciar en la imagen el valor máximo de hilos que otorga el sistema

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 6 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

procesa, a nivel de usuario final lo que se percibe es que el sistema cierra sesiones
inesperadamente, lentitud en interacción con el aplicativo y en otros casos los folios de
operador no pueden enviarse a despacho.

Para simular un flujo de carga fuerte, se tomó como referencia el día 07/09/2021 (se
generó un sismo a nivel nacional), considerando la primera hora desde el reporte del
siniestro (20:50:00 hasta las 21:50:00), obteniendo los valores directamente de la base de
datos de C5, con los siguientes resultados:

Tabla de incidentes generados 07/09/2021

Hora inicio Hora final Tiempo transcurrido Folios generados


20:50:00 20:51:00 1 minuto 5

20:50:00 20:55:00 5 minutos 74

20:50:00 21:00:00 10 minutos 175

20:50:00 21:20:00 30 minutos 466

20:50:00 21:50:00 Una hora 921

Las pruebas realizadas en el ambiente de prueba con un estrés similar al de dicho


incidente arrojaron los siguientes resultados:

Ambiente de Pruebas de Promad

Hora inicio Hora final Tiempo transcurrido Folios generados


21:15:00 21:15:59 1 minuto 6

21:15:00 21:19:59 5 minutos 96

21:15:00 21:24:59 10 minutos 322

21:15:00 21:44:59 30 minutos 903

21:15:00 22:15:59 Una hora 1815

Como se puede apreciar, el ambiente de pruebas soportó casi el doble de


transaccionalidad de peticiones comparado con el ambiente productivo, notando

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 7 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Gracias a este análisis se realiza el ajuste en el ambiente productivo para incrementar la


cantidad de procesos que el sistema operativo permite utilizar al usuario tomcat, notando
inmediatamente un incremento en la mejora de la cantidad de peticiones que puede
procesar el servidor tomcat, evitando con ello la saturación en las conexiones que se
realizan al nodo de base de datos lo que mitigó la elevación de las sesiones ORDS.

Inicialmente se tenía un valor predeterminado de 2048 procesos permitidos para el usuario


tomcat, por lo que la modificación para incrementar los hilos se realiza en el archivo de
configuración /etc/security/limits.conf y queda definida de la siguiente manera:

Imagen 3. Hilos (threads) incrementado por el sistema operativo al servicio Tomcat

Finalmente se determina que el valor óptimo de procesos para ese usuario debe ser de
8192 (lo que se realiza de manera transparente para el sistema operativo) debido a la
cantidad de peticiones que debe de procesar (no se considera un número mayor ya que si
se generan demasiados procesos, se podría sobrecargar el servidor).

Solución de ORDS en contenedor

La solución actual gestiona las sesiones de ORDS mediante un esquema “standalone


(imagen 3)”, esto significa que su arquitectura recibe las peticiones de conexión mediante
el uso del servicio Scan Listener, el cual envía las solicitudes al servidor de aplicaciones
apache Tomcat en la versión 7.0.93, en este punto, se deben tener en cuenta dos
consideraciones, la primera es que las peticiones que se reciben en el servidor tomcat no
son balanceadas por el servicio Scan Listener por lo que no es posible distribuir de manera
uniforme las transacciones que llegan del sistema CAD.

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 8 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Imagen 4. Esquema standalone de peticiones hacia el servicio de ORDS desde cluster kubernetes

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 9 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Imagen 5. Esquema de contenedores ORDS en alta disponibilidad que garantiza el balanceo de


peticiones provenientes desde cluster kubernetes

Como mejora del servicio de ORDS se propone realizar la migración del esquema
standalone hacia contenedor, debido a que se aprovechan las ventajas de kubernetes,
tales como la autoescalibilidad, el manejo de réplicas, optimización en el manejo de
conexiones (ya que las peticiones se realizarán dentro de la red mesh del componente
istio), lo cual garantiza alta disponibilidad de los contenedores.

A modo de resumen al realizar la migración a contenedores se pueden mencionar las


siguientes mejoras:

● Integración nativa con el cluster de kubernetes


● Manejo optimizado de conexiones de servicio tomcat
● Mejora en el manejo de hilos de servicio tomcat
● Autogestión de contenedor mediante kubernetes
● Mejora de comunicación mesh (comunicación de malla) mediante istio
● Alta disponibilidad del servicio (manejo de réplicas de pods)

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 10 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

En el ambiente de prueba fue posible obtener los parámetros a nivel de sistema operativo
de la solución de ORDS por contenedores (la cual maneja la versión de tomcat 9), cómo
es posible ver en la imagen 5 se detectan 40 hilos del proceso dockerd (notando la mejora
en la cantidad de procesos creados por el sistema operativo).

Imagen 6. Hilos del sistema operativo gestionados por el cluster de kubernetes

Con base en los resultados anteriormente mencionados, se determina que esta


solución garantiza y mejora el funcionamiento de las sesiones de ORDS dentro de
la solución CAD, ajustando de manera dinámica la capacidad de recursos que
requiere la solución (dependiendo de la transaccionalidad que demanden los
usuarios).

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 11 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

Fichero de configuración

La estructura que debe tener el fichero YML para el microservicio de ORDS se define en el
siguiente archivo:

ords cad.yml

Por destacar algunos de los valores que contiene el YML son los siguientes:

● Número de réplicas: 5

Imagen 7. Replicas definidas dentro del fichero YML

● Escalabilidad de pod: Habilitada (ultima sección del fichero YML)

Imagen 8. Escalabilidad activa dentro del fichero YML

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 12 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

● Nodo de oracle: srv-c5-bdca-scan (debe agregarse esta URL para el


correcto balanceo de las peticiones)

Imagen 9. Hostname de base de datos (apuntamiento a servidores de base de datos) definido dentro
del fichero YML

● Cambio de URL dentro de configuración de data-q y data-cq: Debe


agregarse esta URL para la correcta recepción y envío de peticiones hacia
el nuevo esquema de ORDS (URL_ORDS:
'http://ordscontainer/ords/pxc50001/')

Conclusión

Después de las pruebas de estrés ejecutadas, se logró obtener los parámetros de


sistema adecuados, así como una forma de mejorar el rendimiento y autogestión del
servicio ORDS mediante el uso de contenedores, integrandolos al cluster de
kubernetes, permitiendo auto escalabilidad (de 5 réplicas pueden crecer hasta 10 [se
determinan estos valores para no exceder el consumo de recursos de este servicio]),
dejando la gestión del recurso al orquestador (kubernetes) y la gestión de red al
componente istio de manera nativa, mediante lo cual se mejoró notablemente el
rendimiento del aplicativo CAD y mitigando con ello las fallas más frecuentes reportadas.

Elaborado por el Departamento de Seguridad y Gobierno de Datos

29 de enero del año 2022

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.
Página Página 13 de 13
Reporte de solución a hilos de tomcat Versión: 1.0

Fecha de
29/01/2022
elaboración:

FIN DEL DOCUMENTO

Buffon 46 piso 8, Anzures C.P.11590, CDMX Información confidencial, prohibida la


ww.promad.com.mx reproducción total, o parcial contenido
+5255 5257 5993 en este documento.

También podría gustarte