Planificar una prueba de rendimiento de BizTalk Server
Cuando necesitamos conocer y/o predecir del comportamiento de nuestro entorno de BizTalk Server entonces, es la hora de planificar y ejecutar una prueba de rendimiento. El objetivo de este artículo es repasar brevemente las cosas que a tener en cuenta y los recursos disponibles para facilitar una prueba de rendimiento.
Me gustaría empezar listando algunas de las herramientas que debemos considerar utilizar:
- Microsoft BizTalk LoadGen 2007 (LoadGen)
- El objetivo de esta herramienta es generar una carga continuada de mensajes a puertos de entrada de BizTalk Server. En la versión actual se soportan localizaciones de BizTalk Server configuradas con los siguientes adaptadores de transporte: FILE, HTTP, SOAP, MSMQ, MQ Series, WSE (Web Services Enhancements) y WSS (Windows SharePoint Server).
- Esta carga se puede configurar mediante un documento XML para que los mensajes se envíen de forma periódica o limitado por número de mensajes o tiempo).
- Además se dispone de un mecanismo para monitorizar su funcionamiento y así determinar la optimización de nuestro entorno.
- Se puede descargar de la web de Microsoft: https://www.microsoft.com/downloads/details.aspx?FamilyID=c8af583f-7044-48db-b7b9-969072df1689&DisplayLang=en
- Bloggers recomendados para saber más sobre el uso de esta herramienta:
- BizTalkLATAM's Blog (https://blogs.msdn.com/biztalklatam/archive/2006/01/17/513385.aspx y https://blogs.msdn.com/biztalklatam/archive/2006/02/07/526707.aspx) en Español :)
- Microsoft Server Performance Advisor (SPA)
- Esta herramienta permite recopilar las trazas de los contadores y eventos de rendimiento para facilitar su análisis y crear informes
- Principalmente permite identificar cuellos de botellas del sistema operativo (se distribuye con Windows Vista)
- Se puede descargar de la web de Microsoft: https://www.microsoft.com/downloads/details.aspx?familyid=61a41d78-e4aa-47b9-901b-cf85da075a73&displaylang=en
- Performance Analysis of Logs (PAL)
- Ayuda a analizar el umbral dejado por las trazas de los contadores de rendimiento, es especialmente útil para ficheros de trazas a grandes.
- Permite identificar cuellos de botella tanto de BizTalk Server como del Sistema Operativo (SO)
- Además es una herramienta que se puede extender para analizar el rendimiento de productos de Microsoft tales como: MOSS, SQL Server, Exchange Server, IIS, etc.
- Disponible en: https://www.codeplex.com/PAL
- Más información sobre su uso en:
- Kent Weare's BizTalk Blog (https://kentweare.blogspot.com/2008/05/pal-is-my-new-pal.html) en perfecto Inglés Técnico
- BizTalk MsgBoxViewer
- Esta herramienta es un buen complemento a la consola de Administración de BizTalk Server 2006 y el HAT (Health Activity Tracking) a la hora de monitorizar y realizar seguimiento de nuestro sistema. El análisis del volcado de sus trazas puede ser decisivo para encontrar posibles cuello de botella en el entorno.
- Disponible en el siguiente Blog: https://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx
- BizTalk Server 2006 Best Practices Analizer (BTS BPA)
- Esta herramienta cuando es ejecutada da a conocer de forma automática a través de un intuitivo informe, si el despliegue de BizTalk Server analizado cumple con las mejores prácticas recomendadas.
- Se puede descargar de https://www.microsoft.com/downloads/details.aspx?FamilyID=dda047e3-408e-48ba-83f9-f397226cd6d4&DisplayLang=en
- SQL Server 2005 Best Practices Analizer (SQL BPA)
- El objetivo y funcionamiento es igual a la anterior pero lógicamente aplicado a SQL Server 2005
- Disponible en la Web de Microsoft: https://www.microsoft.com/downloads/details.aspx?familyid=DA0531E4-E94C-4991-82FA-F0E3FBD05E63&displaylang=en
- SQL Server 2005 Performance Dashboard Reports
- Esta herramienta sirve para medir el rendimiento de los servidores de base de datos de BizTalk Server
- La puedes descargar del siguiente enlace: https://www.microsoft.com/downloads/details.aspx?familyid=1D3A4A0D-7E0C-4730-8204-E419218C1EFC&displaylang=en
Una prueba de rendimiento está compuesta por varias fases:
- Planificar la prueba
- Estimar y reservar los recursos necesarios
- Creación de un plan de ejecución
- Clarificar el alcance de la prueba (propósito, objetivos, criterios de éxito, etc.)
- Definición de la metodología a seguir
- Recopilación de información sobre el entorno y la aplicación a probar
- Requerimientos de la solución principalmente los técnicos, aunque nunca está de más conocer los de negocio
- Documentación del escenario (Infraestructura de Red, Topología de Servidores, Información sobre el directorio activo, configuración del entorno, etc.)
- Diseño detallado de la solución
- Elementos que intervienen (Servicios Web, Orquestaciones, Reglas de Negocio, Mapas, etc.)
- Sistemas que se integran (SAP, Oracle, etc.)
- Intercambios
- Adaptadores de transporte utilizados (FILE, FTP, SOAP, etc.)
- Tipos de mensajes (XML, Ficheros planos personalizados, SWIFT, EDI, etc.)
- Número y tamaño de mensajes
- Entre otros...
- Definición de los casos de estudio
- Prueba de capacidad del entorno
Lo primero que se debe considerar es lanzar los verificadores automáticos de mejores prácticas, BTS BPA y SQL BPA.
NOTA: Este es un buen punto para verificar la estrategía de instancias de Host de BizTalk Server en la aplicación. Se recomienda segmentar los Host de BizTalk Server por funcionalidad (Recepción, Proceso, Envío) y valorar el uso de prioridades.
Para conocer la capacidad real de un entorno de BizTalk Server con múltiples servidores, se recomienda ir realizando varias baterías de pruebas empezando con un solo nodo, y repitiendo las pruebas añadiendo otro nodo hasta la totalidad de los mismos
Para las pruebas se recomienda utilizar la herramienta LoadGen para simular el envío de mensajes a BizTalk Server
Configuración y monitorización de los contadores de rendimiento (ver más adelante)
- Análisis de resultados obtenidos
- Por cada iteración o ciclo de prueba (no es necesario terminar completamente las pruebas de capacidad) se recomienda analizar los volcados utilizando tanto la herramienta PAL como SPA
- Para un buen análisis de las pruebas de rendimiento es necesario estar familiarizado con los contadores de rendimiento relativos a BizTalk Server de cara a monitorizar de forma adecuada nuestro entorno.
- La lista completa de contadores la podéis encontrar en el siguiente enlace https://technet.microsoft.com/en-us/library/aa578394.aspx.
- No obstante, en el siguiente enlace de listan los más utilizados https://msdn.microsoft.com/en-us/library/aa561922.aspx.
- Ajuste del entorno, también conocido como Tunning
- En base la información recogida y a las conclusiones llegadas puede ser necesario implementar algunos cambios y/o ajustar la configuración existente
- Para ello se recomienda la lectura de los siguientes artículos:
- "Troubleshooting BizTalk Server Performance" (https://msdn.microsoft.com/en-us/library/aa954063.aspx)
- "Performance Tuning for Low-Latency Messaging" (https://msdn2.microsoft.com/en-us/library/aa475435.aspx) aunque es para BizTalk Server 2004 es totalmente válido en BizTalk Server 2006
- "Improving .Net Application Performance and Scalability" (https://msdn2.microsoft.com/en-us/library/ms998530.aspx)
- "Improving SQL Server Performance" (https://msdn2.microsoft.com/en-us/library/ms998577.aspx)
- Pruebas y estabilización
En cuanto al equipo normalmente en las colaboraciones que hacemos solo participa un consultor Experto en BizTalk Server, pero se requiere de la ayuda de:
- Un miembro del equipo de desarrollo de la solución para proporcionar información sobre los detalles de la implementación, y para abordar posibles ajustes (tuning) o cambios en el código
- Un técnico de infraestructura y operaciones para proporcionar información sobre la arquitectura, despliegue, rendimiento actual, etc.
- Puntualmente se pueden requerir otros perfiles para disponer acceso sistemas o bases de datos, etc.
Sobre la duración de una prueba de rendimiento, os recomiendo que como mínimo os reservéis una semana y por supuesto, dedicación exclusiva. La voz de la experiencia dice que una estimación de 2 - 3 semanas es más real si tenemos en cuenta que lo normal es que no se cuente con toda la información necesaria y posiblemente haya que realizar cambios en la configuración (e incluso en el código) que obligen a repetir algunas pruebas.
Si queréis saber más sobre pruebas de rendimiento con BizTalk Server os invito a leer el WhitePaper llamado "Managing a Successful Performance Lab" que se puede descargar de la Web en el siguiente enlace: https://www.microsoft.com/downloads/details.aspx?familyid=60E8C48E-2139-40D0-98FA-78233B3B64CF&displaylang=en. Y si quereis conocer algunas consideraciones a tener en cuenta para optimizar la base de datos de BizTalk Server, tenéis a vuestra disposición el siguiente artículo de MSDN: https://msdn2.microsoft.com/en-us/library/bb743398.aspx.
Por cierto, no quisiera terminar sin recordarles un Blog que hablando de rendimiento de aplicaciones BizTalk Server considero imprescindible estar suscripto: https://blogs.msdn.com/biztalkperformance/ entrar y ya veréis porque :)
Por último informar que Microsoft Servicios dispone un Offering muy delimitado para ejecutar una prueba de rendimiento en grandes corporaciones llamado "Performance Tuning for BizTalk Server", para más información os facilito el folleto informativo https://download.microsoft.com/download/D/3/A/D3AEC008-4539-4C70-B1EF-9E8A3DE3B584/Performance_Tuning_for_BizTalk%20Server.pdf
Espero que podáis sacar buen provecho a estos consejos ;) ESPERO VUESTROS COMENTARIOS!!!
Comments
Anonymous
January 01, 2003
The comment has been removedAnonymous
May 28, 2008
Muy completo y una buena guia de referencia en estos temas, que por otro lado no es facil encontrar info. Thanks!Anonymous
June 03, 2008
The comment has been removed