optimizaciones de escenarios de Low-Latency para BizTalk Server
De forma predeterminada, BizTalk Server está optimizado para el rendimiento en lugar de una latencia baja. Las siguientes optimizaciones se aplicaron a BizTalk Server para el escenario de prueba usado para esta guía.
Nota
Estas optimizaciones mejorarán la latencia, pero pueden hacerlo a un costo determinado para el rendimiento general.
Aumento del tamaño de la cola de mensajes interno del host de BizTalk Server
Cada host de BizTalk tiene su propia cola interna en memoria. Aumente el tamaño de esta cola del valor predeterminado de 100 a 1000 para mejorar el rendimiento de un escenario de baja latencia. Para obtener más información sobre cómo modificar el valor del tamaño interno de la cola de mensajes, vea "How to Modify the Default Host Throttling Settings" (Cómo modificar la configuración de limitación de host predeterminada) en la ayuda de BizTalk Server en https://go.microsoft.com/fwlink/?LinkID=120225.
Reduzca el valor MaxReceiveInterval de la tabla adm_ServiceClass de la base de datos de administración de BizTalk Server
BizTalk Server usa un mecanismo de sondeo para recibir mensajes de sus colas host en el Cuadro de mensajes. El valor MaxReceiveInterval de la tabla adm_ServiceClass de la base de datos de administración de BizTalk (BizTalkMgmtDb) es el valor máximo en milisegundos que cada instancia de host de BizTalk esperará hasta que sondee el cuadro de mensajes. La tabla adm_ServiceClass contiene un registro para los siguientes tipos de servicio:
XLANG/S : para instancias de host de orquestación de BizTalk
Messaging InProcess : para instancias de host en proceso
MSMQT : para instancias de host del adaptador de MSMQT
Mensajería aislada : para instancias de host fuera del proceso, usadas por http, SOAP y determinados controladores de adaptadores de recepción de WCF
De forma predeterminada, este valor se establece en 500 milisegundos, que está optimizado para el rendimiento en lugar de una latencia baja. En determinados escenarios, la latencia se puede mejorar reduciendo este valor.
Nota
Los cambios en este valor afectan a todas las instancias del tipo de servicio asociado, por lo tanto, tenga cuidado de evaluar el impacto en todas las instancias de host antes de cambiar este valor.
Este valor solo se usa si el cuadro de mensajes no tiene mensajes no procesados restantes. Si hay un trabajo pendiente constante de mensajes sin procesar en el cuadro de mensajes, BizTalk Server intentará procesar los mensajes sin esperar al retraso de sondeo. Una vez procesados todos los mensajes, BizTalk Server comenzarán a sondear con el valor especificado para MaxReceiveInterval.
En un entorno de BizTalk Server con una alta proporción de instancias de host a instancias de base de datos de cuadro de mensajes, reducir el valor de MaxReceiveInterval puede provocar un uso excesivo de la CPU en el equipo SQL Server que hospeda la instancia de base de datos de cuadro de mensajes. Por ejemplo, si MaxReceiveInterval se reduce a un valor bajo (< 100) en un entorno de BizTalk Server con un único cuadro de mensajes y > 50 instancias de host, el uso de cpu en el SQL Server puede subir por encima del 50 %. Este fenómeno puede producirse porque la sobrecarga asociada a las colas de host de sondeo continuo es significativa. Si reduce MaxReceiveInterval a un valor inferior a 100, también debe evaluar el impacto que esto tiene en el uso de CPU del equipo SQL Server.