Observaciones y recomendaciones
Resumen de resultados de pruebas
Se observaron que los resultados del escenario de solo mensajería eran ~ 109 382 400 mensajes al día. En el escenario de orquestación, los resultados indican que un único equipo que ejecuta BizTalk Server puede procesar hasta 58 752 000 mensajes al día. Estos resultados se lograron en un entorno de espacio aislado mediante hardware normal de clase empresarial implementado para muchas soluciones de BizTalk Server. Por lo tanto, estos resultados indican el tipo de BizTalk Server rendimiento de que se puede lograr sin código personalizado. Las soluciones de cliente suelen implicar artefactos de BizTalk desarrollados personalizados; en muchos casos, esto aumenta los requisitos de procesamiento que a su vez afectan al rendimiento. Siguiendo los consejos presentados en esta guía, especialmente la sección Optimización de BizTalk Server Aplicaciones, se puede minimizar el impacto de implementar artefactos de BizTalk Server desarrollados personalizados.
En la tabla siguiente se proporciona un resumen de los resultados de la prueba para esta evaluación de rendimiento.
Escenario | Mensajería (KPI de BizTalk: documentos procesados por segundo) | Mensajería (KPI de SQL: uso del procesador DE SQL) | Latencia de mensajería (segundos) | Orquestación (KPI de BizTalk: documentos procesados por segundo) | Orquestación (KPI de SQL: uso del procesador de SQL) | Latencia de orquestación (segundos) |
---|---|---|---|---|---|---|
Equipo de BizTalk Server cuadro de mensajes único | 1266 documentos procesados por segundo | Uso de CPU de SQL del 59 % | 0,06 | 680 documentos procesados por segundo | Uso de CPU de SQL del 66,5 % | 0.067 |
Equipos BizTalk Server cuadro de mensajes únicos | 1267 documentos procesados por segundo | Uso de CPU de SQL del 59,8 % | 0,057 | 686 documentos procesados por segundo | Uso de CPU de SQL del 68,5 % | 0.067 |
3 Cuadro de mensajes 1 BizTalk Server equipos | 2102 documentos procesados por segundo | Uso de CPU de SQL del 41 % | 0,077 | 974 documentos procesados por segundo | Uso de CPU de SQL del 48 % | 0,11 |
3 Cuadro de mensajes 2 BizTalk Server equipos | 2285 documentos procesados por segundo | Uso de CPU de SQL del 58 % | 0.041 | 1065 documentos procesados por segundo | Uso de CPU de SQL del 65 % | 0..69 |
4 Cuadros de mensaje 1 BizTalk Server equipos | 2125 documentos procesados por segundo | Uso de CPU de SQL del 30 % | 0.078 | 979 documentos procesados por segundo | Uso de CPU de SQL del 37 % | 0.095 |
4 Cuadros de mensajes 2 BizTalk Server equipos | 2790 documentos procesados por segundo | Uso de CPU de SQL del 50 % | 0,052 | 1487 documentos procesados por segundo | Uso de CPU de SQL del 63 % | 0,15 |
4 Cuadros de mensaje 3 BizTalk Server equipos | 2656 documentos procesados por segundo | Uso de CPU de SQL del 58 % | 0,074 | 1388 documentos procesados por segundo | Uso de CPU de SQL del 65 % | 0,15 |
Comparación de estadísticas de rendimiento con BizTalk Server 2009
En la tabla siguiente se muestra una comparación de las estadísticas de rendimiento entre BizTalk Server 2009 y BizTalk Server 2010. Las estadísticas de rendimiento de BizTalk Server 2009 enumeradas en esta tabla proceden de la Guía de optimización y rendimiento de BizTalk Server 2009.
Escenario | BizTalk Server 2009 Máximo rendimiento sostenible (MST) msgs/s |
BizTalk Server 2009 Número de servidores de BizTalk necesarios |
BizTalk Server 2010 Máximo rendimiento sostenible (MST) msgs/s |
BizTalk Server 2010 Número de servidores de BizTalk necesarios |
BizTalk Server diferencia del 2010 % de BizTalk Server 2009 |
---|---|---|---|---|---|
Mensajería: cuadro de mensajes único | 1291 | 2 | 1266 | 1 | 98.06% |
Orquestación: cuadro de mensajes único | 676 | 2 | 680 | 1 | 100.59% |
Mensajería: 3 cuadros de mensaje | 2103 | 3 | 2285 | 2 (2102/s con 1 BTS) | 108.65% |
Mensajería: 4 cuadros de mensajes | No aplicable | No aplicable | 2790 | 2 | No aplicable |
Orquestación: 3 cuadros de mensajes | 1005 | 4 | 1065 | 2 (974/s con 1 BTS) | 105.97% |
Orquestación: 4 cuadros de mensajes | No aplicable | No aplicable | 1487 | 2 | No aplicable |
En nuestro entorno de laboratorio, al usar cuatro bases de datos messageBox, los resultados de rendimiento máximo sostenible fueron los siguientes:
En el escenario de mensajería, 2790 documentos por segundo.
En el escenario de orquestación, 1487 documentos por segundo.
Consideraciones sobre mensajes Aunque BizTalk Server no impone ninguna restricción en el tamaño del mensaje, las pruebas que ejecutamos para BizTalk Server 2010 solo usaban mensajes de 2 KB y el tipo de adaptador de WCF usado era WCF-NetTCP adaptador. Esto coincide con el tamaño del mensaje y el tipo de adaptador usados en las pruebas de la guía de optimización de rendimiento de BizTalk Server 2009.
Los controladores para la mejora del rendimiento son:
Avances en hardware: los equipos SQL Server usados en nuestro laboratorio eran de 4 CPU, cuatro núcleos (16 núcleos), Intel Xeon E7330 a 2,40 GHz. En las pruebas de 2009, se usaron 4 CPU, cuatro núcleos (16 núcleos), Intel Xeon 2,4 GHz.
Los equipos BizTalk Server usados en nuestro laboratorio eran de 2 CPU, cuatro núcleos (8 núcleos), Nehalem Hyper-Threaded (16 núcleos lógicos), Intel Xeon X5570 a 2,93 GHz. En las pruebas de 2009, se usaron 2 NÚCLEOs, cuatro núcleos (8 núcleos), Intel Xeon 2,33 GHz.
Mejora del motor de SQL Server: las pruebas de 2009 se realizaron en SQL Server 2008, mientras que nuestras pruebas se realizaron con SQL Server 2008 R2 como plataforma de base de datos subyacente.
Recomendaciones para escalar los niveles de BizTalk Server y SQL Server
Con estos resultados, el equipo de productos de BizTalk Server pudo demostrar que un solo equipo BizTalk Server y un único equipo SQL Server puede admitir más de 109 millones de mensajes en un escenario de mensajería y 58 millones de orquestaciones durante un período de 24 horas. Al escalar los niveles de BizTalk Server y SQL a la configuración óptima disponible en nuestro entorno, pudimos procesar más de 241 millones de mensajes al día y más de 128 millones de orquestaciones. Los resultados se realizaron en un entorno de espacio aislado mediante la clase de hardware implementado en muchas empresas. Como se indicó anteriormente, estos números representan un rendimiento realista de BizTalk Server que se puede lograr sin código personalizado ni un entorno optimizado. Con hardware adicional, es posible que se haya logrado un rendimiento aún mayor. Las soluciones de cliente suelen implicar artefactos de BizTalk desarrollados personalizados que incurren en requisitos de procesamiento adicionales, lo que aumenta el uso de recursos y, a su vez, reduce el rendimiento general. Sin embargo, siguiendo los consejos descritos a lo largo de la guía, especialmente las recomendaciones de Optimización de aplicaciones BizTalk Server, se puede minimizar el impacto de esto.
Los resultados muestran que el escalado horizontal del número de equipos de BizTalk Server es una estrategia de escalado horizontal eficaz si el cuadro de mensajes SQL Server equipo no es un cuello de botella. Después de un cierto punto, nuestros resultados indican que agregar BizTalk Server equipos se convierte en una técnica de escalado horizontal ineficaz porque hemos observado que se produjo un punto de contención en las tablas compartidas dentro de la base de datos messageBox, lo que provocó que el rendimiento disminuya. Para maximizar los resultados que se pueden obtener de un grupo de BizTalk Server con una base de datos de cuadro de mensajes única, debe aplicar las optimizaciones descritas en Optimización del rendimiento de la base de datos. En concreto, debe asegurarse de que se usa un subsistema de almacenamiento rápido para el almacenamiento SQL Server y que los discos lógicos usados por SQL Server para almacenar los archivos de base de datos de Cuadro de mensajes responden en el menor tiempo posible. Un umbral de uso frecuente para medir el rendimiento aceptable de lectura y escritura es de 15 milisegundos; Normalmente, esto se mide mediante los contadores Avg. Disk sec/Read y Avg. Disk sec/Write que se pueden encontrar en el objeto de rendimiento Disco lógico. Una vez que se han aplicado todas las optimizaciones disponibles al equipo SQL Server que hospeda la base de datos messageBox, se pueden agregar bases de datos de cuadro de mensajes adicionales. Las mismas técnicas de optimización que se aplicaron a la base de datos principal del cuadro de mensajes también deben aplicarse a las bases de datos secundarias. Se recomienda seguir las instrucciones de Escalado horizontal del nivel de SQL Server (https://go.microsoft.com/fwlink/?LinkID=158075) en la documentación de BizTalk Server.
Para obtener resultados óptimos, toda la pila de hardware y software debe ser de calidad adecuada y también configurarse correctamente. En primer lugar, se debe adquirir hardware de buena calidad, incluidos, entre otros, las redes gigabits, el almacenamiento rápido (discos SQL locales SAN o 15 K) y los equipos modernos que tienen varias CPU con varios núcleos por CPU. El equipo de SQL Server solo debe dedicarse al procesamiento de BizTalk Server. Al ejecutar un único equipo de SQL Server, se recomienda crear dos instancias de SQL, una para el Cuadro de mensajes de BizTalk y otra para todas las demás bases de datos. Esto permite configurar la configuración de toda la instancia para obtener un rendimiento óptimo del cuadro de mensajes. Las optimizaciones recomendadas en Optimización del rendimiento deben aplicarse paso a paso en el orden siguiente: Optimización del rendimiento del sistema operativo, Optimización del rendimiento de la red, Optimización del rendimiento de la base de datos de configuración previa2, Optimizaciones de base de datos posteriores a la configuración2 y Optimizaciones generales de BizTalk Server 1. La creación de grupos de archivos dedicados para la base de datos MessageBox y la asignación de estos en los LUN de SAN, como se describe en Optimización de grupos de archivos para las bases de datos2, puede proporcionar una mejora considerable del rendimiento en función de la configuración de SAN y el diseño de LUN.
Para determinar de forma eficaz cómo escalar el nivel de BizTalk Server o SQL, se recomienda realizar pruebas de carga mediante mensajes que aproximan los datos de producción reales. Antes de escalar el nivel de BizTalk Server, asegúrese de que SQL Server aún no sea un cuello de botella, como se recomienda en Supervisión SQL Server rendimiento. Si SQL Server no es un cuello de botella y hay espacio de cpu en cualquiera de los equipos BizTalk Server, es posible que pueda mejorar el rendimiento modificando el diseño de la instancia de host. Es importante establecer cuatro o cinco indicadores clave de rendimiento (KPI), que se usan como puntos de comparación de alto nivel para todas las ejecuciones de pruebas. Siguiendo este consejo, podrá medir rápidamente si un cambio determinado ha degradado el rendimiento general de la solución.
Antes de escalar horizontalmente el nivel de SQL Server, aplique todas las optimizaciones de Optimización del rendimiento de la base de datos. Durante el curso de los laboratorios de rendimiento del cliente, la observación era que la configuración de almacenamiento en disco para las bases de datos MessageBox y TempDb, en particular, puede proporcionar más del 30 % de mejora del rendimiento. Al escalar a varias bases de datos de Cuadro de mensajes, se usaron tres y cuatro bases de datos messageBox porque hay poca ventaja de rendimiento al escalar horizontalmente desde una base de datos de cuadro de mensajes única a dos bases de datos de cuadro de mensajes. Para obtener más información sobre el escalado horizontal del cuadro de mensajes de BizTalk Server, consulte Escalado horizontal del nivel de SQL Server (https://go.microsoft.com/fwlink/?LinkID=158075) en la documentación de BizTalk Server.
Optimizaciones implementadas
En esta sección se proporciona una lista de comprobación de todas las optimizaciones que se aplicaron para los escenarios de prueba de laboratorio.
Nota
Estos deben probarse de acuerdo con los procedimientos de administración de cambios antes de aplicarlos en el entorno de producción.
La aplicación de las optimizaciones de una manera sistemática y controlada,mediante la aplicación de un conjunto de optimizaciones y, a continuación, la prueba del impacto, dará como resultado el máximo beneficio de rendimiento. Aplicar optimizaciones sin probar periódicamente el impacto de las optimizaciones puede provocar realmente una degradación del rendimiento de la solución.
Listas de comprobación de optimizaciones aplicadas
Optimizaciones de plataforma y red
Optimization | Referencia |
---|---|
BIOS: configure las opciones de rendimiento. | Optimización del rendimiento del sistema operativo |
Deshabilite el examen en tiempo real en SQL Server archivos. | Optimización del rendimiento del sistema operativo |
Habilite el plan de energía "Alto rendimiento" en todos los equipos BizTalk Server y SQL Server. | Directrices generales para mejorar el rendimiento del sistema operativo |
Deshabilite antivirus en todos los equipos BizTalk Server y SQL Server. | Directrices generales para mejorar el rendimiento del sistema operativo |
Optimizaciones de SQL Server: General
Optimization | Referencia |
---|---|
Establezca Unidad de asignación de archivos NTFS en 64 KB. | Optimizaciones de base de datos de configuración previa2 |
Instale SQL Server 2008 R2. | Optimizaciones de base de datos de configuración previa2 |
Configure SQL Server 2008 R2 Data Collector/Warehouse. | Optimizaciones de base de datos de configuración previa2 |
Asegúrese de que se han ampliado los privilegios de Windows adecuados a las cuentas de servicio de SQL Server. | SQL Server 2008 R2: Configurar cuentas de servicio de Windows (https://go.microsoft.com/fwlink/?LinkID=132144) |
Establezca Memoria de servidor mínima y máxima para SQL Server. | Optimizaciones de base de datos de configuración previa2 |
Conceda el privilegio Windows Lock Pages In Memory a la cuenta que se usa para SQL Server. | Optimizaciones de base de datos de configuración previa2 |
Tamaño previo BizTalk Server bases de datos para el tamaño adecuado con varios archivos de datos. | Optimizaciones de base de datos posteriores a la configuración2 |
Configure SQL Server protocolos de cliente. | Solución de problemas de SQL Server (https://go.microsoft.com/fwlink/?LinkID=154250) |
Dividir la base de datos tempdb en varios archivos de datos de igual tamaño en cada instancia de SQL Server usada por BizTalk Server | Optimizaciones de base de datos de configuración previa2 |
Establecer manualmente la afinidad de proceso de SQL Server | Optimizaciones de base de datos de configuración previa2 |
Configuración de MSDTC y deshabilitación del seguimiento de DTC | Optimizaciones de base de datos de configuración previa2 |
Habilitar la marca de seguimiento T1118 como parámetro de inicio para todas las instancias de SQL Server | Optimizaciones de base de datos de configuración previa2 |
optimizaciones de SQL Server: bases de datos de BizTalk
Optimization | Referencia |
---|---|
Establezca Crecimiento automático de las bases de datos de BizTalk en un valor fijo y no en un valor porcentual. | Optimizaciones de base de datos posteriores a la configuración2 |
Mover o dividir archivos de registro y datos de base de datos de BizTalk a LUNS independientes. | Optimizaciones de base de datos posteriores a la configuración2 |
Considere la posibilidad de establecer la opción de tabla "texto en fila" en tablas de base de datos de Cuadro de mensajes específicas | Optimizaciones de base de datos posteriores a la configuración2 |
Optimizaciones de BizTalk
Optimization | Referencia |
---|---|
Puertos de recepción independientes, puertos de envío, orquestaciones y seguimiento en hosts dedicados independientes. | Optimizaciones generales de BizTalk Server 1 |
Configurar intervalos de sondeo. | Optimizaciones de escenarios de baja latencia2 |
Ajuste la propiedad de conexión máxima del archivo de configuración de BizTalk. | "Aumentar el número de conexiones simultáneas SOAP y HTTP permitidas cambiando el valor del parámetro maxconnection" de General BizTalk Server Optimizations1 |
Defina los parámetros de hospedaje de CLR para cada instancia de host en cada nodo de BizTalk Server: Máximo de subprocesos de E/S: 250 Máximo de subprocesos de trabajo: 100 Subprocesos de E/S mínimos: 25 Subprocesos de trabajo mínimos: 25 |
Sección "Definir valores de subproceso de hospedaje CLR para instancias de host de BizTalk" de General BizTalk Server Optimizations1 |
Aumente los mensajes en proceso y el tamaño de la cola de mensajes internos a 10000. | Optimizaciones de escenarios de baja latencia2 |
Deshabilite BizTalk Server seguimiento de nivel de grupo. | Optimizaciones generales de BizTalk Server 1 |
Administrar el número de solicitudes que se ejecutan simultáneamente para ASP.NET 4 aplicaciones web que pueden hospedar ubicaciones aisladas recibidas, servicios web back-end y servicios WCF en IIS 7.5 e IIS 7.0 que se ejecutan en modo integrado | Optimizaciones generales de BizTalk Server 1 |
Deshabilitación de la limitación de host de BizTalk Server | Optimizaciones generales de BizTalk Server 1 |
Configuración de MSDTC y deshabilitación del seguimiento de DTC | Optimizaciones generales de BizTalk Server 1 |
Optimizaciones de configuración de WCF
Optimization | Referencia |
---|---|
Para cada servicio WCF, aplique el comportamiento del servicio ServiceThrottling y establezca maxConcurrentCalls y maxConcurrentSessions en 200. | Optimización del rendimiento del adaptador de WCF de BizTalk Server |
Configure el uso del comportamiento de serviceThrottling en el archivo de configuración del servicio WCF de back-end. | Optimización del rendimiento del servicio web WCF |