Compartir a través de


Cómo implementa BizTalk Server la limitación de host

El mecanismo de limitación de host BizTalk Server supervisa continuamente una condición de limitación, calcula la gravedad de la condición de limitación y aplica la limitación del host progresivamente en función de la gravedad calculada. El mecanismo de limitación es el ajuste automático y las opciones de configuración predeterminadas son adecuadas para la mayoría de los escenarios de procesamiento de BizTalk Server. BizTalk Server limitación de host expone varias opciones configurables que se pueden usar para ajustar la limitación en escenarios específicos. Para obtener información sobre cómo cambiar estas opciones de configuración, vea Cómo modificar la configuración del host.

Componentes del algoritmo de limitación de host

BizTalk Server usa el siguiente algoritmo al aplicar la limitación de host:

  1. Supervise continuamente los parámetros siguientes para ver si exceden determinados umbrales. Si los valores del parámetro superan el umbral del parámetro, existe una condición de limitación.

    • Cantidad de memoria en uso (tanto de todo el sistema como de la memoria de proceso del host)

    • Número de mensajes en curso que se están enviando o procesando (umbral de límite saliente).

    • Número de subprocesos en uso.

    • Tamaño de la base de datos, medido según el número de elementos en las tablas de cola para todos los hosts y el número de elementos en las tablas de cola de impresión y de seguimiento.

    • Número de conexiones simultáneas a la base de datos.

    • Tasa de publicación de mensajes (entrante) y de entrega o procesamiento (saliente).

  2. Determine la gravedad de la condición de limitación. Las condiciones de limitación se clasifican según su gravedad del siguiente modo (de más grave a menos grave).

    • La memoria de proceso del host en uso supera el umbral.

    • El número de mensajes en curso supera el umbral.

    • El recuento de subprocesos en uso supera el umbral.

    • El tamaño de la base de datos supera el umbral.

    • Todas las demás condiciones de limitación.

  3. Aplique progresivamente la limitación en función de la gravedad de las condiciones de limitación. La limitación se aplica más agresivamente conforme aumenta el nivel de gravedad. La limitación progresiva se consigue del siguiente modo:

    • Se detectan una o más condiciones de limitación y se les asigna una gravedad.

    • Se emite una instrucción de implementar la limitación basándose en la condición con la gravedad más alta. Dependiendo de la condición de limitación, si el problema persiste, se puede reducir el tamaño de diversos grupos de subprocesos y se puede liberar memoria deshidratando las orquestaciones en ejecución.

    • Se aplica un retraso en la publicación o en el procesamiento del mensaje en función de si el mensaje es entrante o saliente. El período de retraso es proporcional a la gravedad de la condición de limitación, por lo que las condiciones de limitación de mayor gravedad iniciarán un período de limitación más largo que las condiciones de limitación de menor gravedad. El mecanismo de limitación ajusta este período de retraso hacia arriba y hacia abajo en unos intervalos concretos a medida que cambian las condiciones. El período de retraso actual se expone a través del retraso de entrega de mensajes (ms) y los contadores de rendimiento retraso de publicación de mensajes (ms) asociados a la categoría de objeto de rendimiento del Agente de mensajes de BizTalk:Message . Estos contadores de objetos de rendimiento se documentan en el tema Contadores de rendimiento de limitación de host.

    • El mecanismo de limitación sigue comprobando si hay una condición de limitación. Si se mitigan las condiciones de limitación, se desbloquean los mensajes acelerados y se permite que funcionen el grupo de subprocesos y otros recursos en un modo no restringido. Si el sistema sigue funcionando sin que se produzcan condiciones de limitación, el período de retraso se reduce en gran medida. Si la condición de limitación persiste, la cantidad de retraso se incrementa proporcionalmente a la gravedad de la condición y los mensajes posteriores estarán sujetos al mayor retraso.

    • La limitación ya no se implementa cuando el período de retraso ha transcurrido.

Tipos de condiciones de limitación

Hay tres tipos principales de condiciones de limitación: basada en velocidad, basada en recursos y orquestación.

  1. La limitación basada en velocidad se divide en dos categorías; entrante (publicado) y saliente (entregado):

    • En el caso de los mensajes entrantes (publicados), BizTalk Server limita la publicación de mensajes si la tasa entrante de publicación de mensajes para la instancia de host supera la tasa de salida de publicación de mensajes\* el valor de factor de sobredrive (porcentaje) especificado. El parámetro Rate overdrive factor (percent) se puede configurar en el cuadro de diálogo Configuración de limitación de publicación de mensajes. La limitación basada en tasa de los mensajes entrantes se realiza principalmente mediante la inducción de un retraso antes de publicar el lote de mensajes en la base de datos de cuadro de mensajes. No se realiza ninguna otra acción para llevar a cabo la limitación basada en tasa en los mensajes entrantes.

    • En el caso de los mensajes salientes (entregados), BizTalk Server limita la entrega de mensajes si la tasa entrante de entrega de mensajes para la instancia del host supera la tasa de salida de entrega de mensajes * el valor de factor de sobredrive (porcentaje) especificado. El parámetro Rate overdrive factor (percent) se puede configurar en el cuadro de diálogo Configuración de limitación de procesamiento de mensajes. La limitación basada en tasa de los mensajes salientes se realiza principalmente mediante la inducción de un retraso antes de quitar los mensajes de la cola en memoria y la entrega de los mensajes al Gestor extremo (EPM) o al motor de orquestaciones para su procesamiento. No se realiza ninguna otra acción para llevar a cabo la limitación basada en tasa en los mensajes salientes.

      Para obtener más información sobre el factor de overdrive de velocidad y otros valores de limitación basados en velocidad, vea How to Modify Rate Based Throttling Settings.

  2. La limitación basada en recursos supervisa los recursos del sistema, como subprocesos, memoria y tamaño de base de datos, y se puede aplicar a cualquier clase de servicio. Para obtener más información sobre los valores de limitación basados en recursos, consulte Modificación de la configuración de limitación basada en recursos.

  3. La limitación de orquestación puede evitar la deshidratación y cuándo pausar o reanudar suscripciones. Para obtener más información sobre los valores de limitación de orquestación, vea How to Modify Orchestration Throttling Settings.

Desencadenadores de condiciones de limitación, acciones y estrategias de mitigación

En esta sección se describen los desencadenadores para diversas condiciones de limitación, las acciones resultantes del mecanismo de limitación y las técnicas que se pueden emplear para mitigar la condición de limitación.

Limitación de entrada

El mecanismo de limitación de BizTalk aplica limitación de entrada al motor de orquestación (XLANG) y a los adaptadores de entrada.

Use el estado de limitación de publicación de mensajes y los contadores de duración del estado de limitación de publicación de mensajes asociados a la categoría de objeto de rendimiento de BizTalk:MessageAgent para medir el estado de limitación actual y la duración de la limitación. Para obtener más información sobre los contadores de rendimiento de limitación de host disponibles, consulte Contadores de rendimiento de limitación de host.

La limitación de entrada puede provocar que los mensajes entrantes se registren en el origen. Si la limitación de entrada se aplica a un adaptador de recepción, el adaptador de recepción puede dejar de recibir mensajes hasta que se mitigue la condición de limitación.

Publicación de mensajes

estado de la limitación
Desencadenador de la condición de limitación Acciones de limitación realizadas Estrategia de mitigación Objeto de rendimiento Contador de rendimiento
2 La tasa entrante de publicación de mensajes para la instancia de host supera la tasa de salida de publicación de mensajes\* el valor especificado del factor de sobredrive (porcentaje). La base de datos no puede hacer frente a la tasa de publicación. Bloquee el subproceso de publicación para un período de tiempo calculado dinámicamente hasta que la tasa de entrada de publicación de mensajes esté a la par con el valor tasa saliente de publicación de mensajes * el valor de tasa excesiva (porcentaje) especificada. Utilice contadores de rendimiento para determinar las tasas entrante y saliente de publicación de mensajes. Considere un factor de sobrecarga adecuado para su entorno.

Compruebe que los valores proporcionados para la duración de la ventana muestreo y el número mínimo de parámetros de muestra son adecuados para su escenario.

Para obtener más información sobre estos parámetros, vea How to Modify Rate Based Throttling Settings.
BizTalk:MessageAgent Tasa entrante de publicación de mensajes

Tasa saliente de publicación de mensajes
4 La memoria del proceso supera el umbral especificado.

Esto puede suceder si el lote que se va a publicar tiene requisitos de memoria elevados o si hay demasiados subprocesos procesando mensajes
Reduzca el tamaño del grupo de subprocesos utilizado por EPM.

Bloquee los subprocesos de EPM para evitar el procesamiento de nuevos lotes de mensajes.

Si hay un requisito de memoria elevado que almacena los mensajes en un lote para la base de datos, el subproceso de publicación también puede sufrir un retraso progresivo antes de que los mensajes se almacenen en la base de datos.

Tanto si el lote de publicación se bloquea como si no debido a la necesidad de memoria de proceso dependerá de varios factores entre los que se incluye el número de mensajes en el lote o si hay deshidratación o comandos de eliminación de mensajes en el lote.
Considere la posibilidad de reducir la cantidad de carga mediante la reducción del grupo de subprocesos de EPM o del tamaño de los lotes del adaptador.

Si el proceso no consume memoria excesiva, considere la posibilidad de aumentar el umbral virtual de proceso para el host.

Para obtener más información sobre cómo cambiar el valor virtual de proceso , consulte Modificación de la configuración de limitación basada en recursos.
BizTalk:MessageAgent Consumo excesivo de memoria de proceso

Uso de memoria de proceso (MB)

Umbral de uso de memoria de proceso (MB)
6 El tamaño de la cola de mensajes del host, el tamaño de la tabla de cola de impresión o el tamaño de la tabla de seguimiento superan el umbral especificado.

Entre las razones posibles para esta condición se incluyen:

- Los trabajos del Agente SQL usados por BizTalk Server para mantener las bases de datos de BizTalk Server que no se ejecutan o se ejecutan lentamente.
- Los componentes de flujo descendente no procesan mensajes de la cola en memoria de forma oportuna.
- El número de mensajes suspendidos es alto.
- Se ha alcanzado la carga máxima sostenible para el sistema.
Reduzca el tamaño del grupo de subprocesos utilizado por EPM.

Bloquee los subprocesos de EPM para evitar el procesamiento de nuevos lotes de mensajes.

El subproceso de publicación también está sujeto a un retraso progresivo antes que los mensajes se almacenen en la base de datos.
Asegúrese de que los trabajos del Agente SQL utilizados por BizTalk Server para mantener las bases de datos de BizTalk Server se están ejecutando y que no fallan.

Finalice y reanude instancias suspendidas según sea necesario.

Aumente el valor predeterminado del recuento de mensajes en el umbral de base de datos teniendo en cuenta los requisitos de espacio del servidor SQL Server que aloja las bases de datos de BizTalk.

Si la base de datos tiene el tamaño adecuado para controlar el trabajo pendiente de mensajes adicional, considere la posibilidad de aumentar los valores del multiplicador de datosde Spool y Tracking para permitir trabajos pendientes adicionales en las tablas Spool y Tracking.

Para obtener más información sobre cómo cambiar los valores, consulte Modificación de la configuración de limitación basada en recursos.
BizTalk:MessageAgent

BizTalk:Cuadros de mensajes:Contadores generales

BizTalk:Cuadros de mensajes:Contadores de host
Agente de mensaje /Tamaño de base de datos

Cuadro de mensajes:Contadores generales /Tamaño de cola de impresión

Cuadro de mensajes:Contadores generales /Tamaño de datos de seguimiento

Cuadro de mensajes:Contadores de host/Cola de host - Longitud

Cuadro de mensajes:Contadores de host/Cola de host - Mens. Suspendidos - Longitud
8 Las sesiones de base de datos utilizadas por la instancia de host superan el umbral especificado. Reduzca el tamaño del grupo de subprocesos utilizado por EPM.

Bloquee los subprocesos de EPM para evitar el procesamiento de nuevos lotes de mensajes.

El subproceso de publicación también está sujeto a un retraso progresivo antes que los mensajes se almacenen en la base de datos.
Considere la posibilidad de aumentar el umbral de conexiones de base de datos para el host.

Para obtener más información sobre cómo cambiar este valor, consulte Modificación de la configuración de limitación basada en recursos.
BizTalk:MessageAgent Sesión de base de datos
9 El recuento de subprocesos del proceso supera el umbral especificado. Reduzca el tamaño del grupo de subprocesos utilizado por EPM.

Bloquee los subprocesos de EPM para evitar el procesamiento de nuevos lotes de mensajes.

El subproceso de publicación también está sujeto a un retraso progresivo antes que los mensajes se almacenen en la base de datos.
Considere la posibilidad de ajustar los distintos tamaños de grupos de subprocesos para asegurar que el sistema no crea un número grande de subprocesos.

Para obtener más información sobre cómo modificar los tamaños del grupo de subprocesos, vea Cómo modificar la configuración general y Cómo modificar la configuración de limitación basada en recursos.
BizTalk:MessageAgent Número de subprocesos

Umbral del número de subprocesos
5 La memoria del sistema supera el umbral especificado. Reduzca el tamaño del grupo de subprocesos utilizado por EPM.

Bloquee los subprocesos de EPM para evitar el procesamiento de nuevos lotes de mensajes.

Si hay un requisito de memoria elevado que almacena los mensajes en un lote para la base de datos, el subproceso de publicación también puede sufrir un retraso progresivo antes de que los mensajes se almacenen en la base de datos.

Tanto si el lote de publicación se bloquea como si no debido a la necesidad de memoria de proceso dependerá de varios factores entre los que se incluye el número de mensajes en el lote o si hay deshidratación o comandos de eliminación de mensajes en el lote.
Considere la posibilidad de reducir la carga mediante la reducción del tamaño predeterminado del grupo de subprocesos de EPM o del tamaño de los lotes del adaptador.

Si el proceso no consume memoria excesiva, considere la posibilidad de aumentar el umbral físico global para el host.

Para obtener más información sobre cómo cambiar el umbral físico global , consulte Modificación de la configuración de limitación basada en recursos.
BizTalk:MessageAgent Uso de memoria física (MB)

Umbral de uso de memoria física (MB)

Limitación de salida

El mecanismo de limitación de BizTalk aplica limitación de salida al motor de orquestación (XLANG) y a los adaptadores de salida.

Use los contadores de duración del estado de limitación de entrega de mensajes y Duración del estado de limitación de entrega de mensajes asociados a la categoría de objetos de rendimiento bizTalk:MessageAgent para medir el estado de limitación actual y la duración de la limitación. Para obtener más información sobre los contadores de rendimiento de limitación de host disponibles, consulte Contadores de rendimiento de limitación de host.

La limitación de salida puede provocar una entrega de mensajes retrasada y puede que los mensajes se acumulen en la cola en memoria y provoquen el bloqueo de los subprocesos de eliminación de la cola hasta que se mitigue la condición de limitación. Cuando los subprocesos de eliminación de la cola están bloqueados no se extrae ningún mensaje adicional del cuadro de mensajes hacia la cola en memoria para la entrega saliente.

Entrega de mensajes

estado de la limitación
Desencadenador de la condición de limitación Acciones de limitación realizadas Estrategia de mitigación Objeto de rendimiento Contador de rendimiento
1 La tasa de entrada de entrega de mensajes para la instancia de host supera la tasa de salida de entrega de mensajes \* el valor especificado del factor de overdrive (porcentaje)

Esto puede deberse a una alta complejidad del procesamiento, a adaptadores de salida lentos o a una escasez momentánea de recursos del sistema.
Bloquee el subproceso de entrega de un período de tiempo calculado dinámicamente hasta que la tasa de entrada de entrega de mensajes esté a la par con la tasa de salida de entrega de mensajes \* el valor de Rate overdrive (percent) especificado. Utilice contadores de rendimiento para determinar las tasas entrante y saliente de la entrega de mensajes. Considere un factor de unidad adecuado para su entorno.

Compruebe que los valores proporcionados para la duración de la ventana muestreo y el número mínimo de parámetros de muestra son adecuados para su escenario.

Para obtener más información sobre estos parámetros, vea How to Modify Rate Based Throttling Settings.
BizTalk:MessageAgent Tasa entrante de la entrega de mensajes

Tasa saliente de publicación de mensajes
4 La memoria del proceso supera el umbral especificado.

Esto puede producirse en escenarios donde el procesamiento requiere un uso intensivo de la memoria, cuando se procesan mensajes grandes o cuando los adaptadores de envío intentan procesar un gran número de mensajes simultáneamente.
Ralentice la entrega de mensajes a los adaptadores o a XLANG.

Reduzca el consumo de memoria del proceso mediante la deshidratación de instancias de servicio y la reducción de caché cuando se puedan aplicar.

Reduzca el tamaño de los grupos de subprocesos utilizados por EPM o por el Agente de mensaje.

Fuerce de manera periódica una recolección de elementos no utilizados (GC) de .NET.
Si el sistema no llega a estar inactivo debido a la limitación basada en memoria del proceso, puede que no se necesite ninguna acción.

Si el contador de recuento de mensajes en proceso es alto y el uso de la CPU no es excesivo incluso cuando hay limitación basada en memoria del proceso, es posible que no se requiera ninguna acción adicional.

Si parece que el sistema supera la limitación, considere la posibilidad de aumentar el valor asociado al umbral virtual de proceso para el host y comprobar que la instancia del host no genera un error de "memoria insuficiente". Si se produce un error de "memoria insuficiente" aumentando el umbral virtual de proceso , considere la posibilidad de reducir los valores del tamaño de la cola de mensajes internos y los umbrales de mensajes en proceso. Esta estrategia es especialmente importante en escenarios de procesamiento de mensajes de gran tamaño.

Para obtener más información sobre estos parámetros, vea How to Modify Resource Based Throttling Settings.How to Modify Resource Based Throttling Settings(Cómo modificar la configuración de limitación basada en recursos).
BizTalk:MessageAgent Consumo excesivo de memoria de proceso

Uso de memoria del proceso (MB)

Umbral de uso de memoria de proceso (MB)

Número de mensajes en curso

Número de instancias activas
3 El número de mensajes en curso entregados a una clase de servicio supera el umbral especificado.

Esto puede deberse a una alta complejidad del procesamiento, a adaptadores de salida lentos o a una escasez momentánea de recursos del sistema.
Ralentice la entrega de mensajes a los adaptadores o a XLANG.

Reduzca el tamaño del grupo de subprocesos utilizado por el Agente de mensaje.
Si se produce una limitación excesiva, considere la posibilidad de aumentar el valor asociado al umbral de mensajes en proceso .

Para obtener más información sobre este parámetro, vea How to Modify Resource Based Throttling SettingsNota: Aumentar este valor puede afectar negativamente al rendimiento del adaptador de envío o aumentar el uso de memoria del proceso.
BizTalk:MessageAgent Número de mensajes en curso

Umbral del número de mensajes en curso
9 El recuento de subprocesos del proceso supera el umbral especificado. Reducir el tamaño de los grupos de subprocesos usados por EPM o el Agente de mensajes Considere la posibilidad de ajustar los distintos tamaños de grupos de subprocesos para asegurar que el sistema no crea un número grande de subprocesos.

Para obtener más información sobre cómo modificar los tamaños del grupo de subprocesos, consulte How to Modify General Settings (Cómo modificar la configuración general ) y How to Modify Resource Based Throttling Settings (Cómo modificar la configuración de limitación basada en recursos).
BizTalk:MessageAgent Número de subprocesos

Umbral del número de subprocesos
5 La memoria del sistema supera un umbral. Ralentice la entrega de mensajes a los adaptadores o a XLANG.

Reduzca el consumo de memoria del proceso mediante la deshidratación de instancias de servicio y la reducción de caché cuando se puedan aplicar.

Reduzca el tamaño de los grupos de subprocesos utilizados por EPM o por el Agente de mensaje.
Considere la posibilidad de reducir la carga mediante la reducción del tamaño predeterminado del grupo de subprocesos de EPM o del tamaño de los lotes del adaptador.

Si el proceso no consume memoria excesiva, considere la posibilidad de aumentar el umbral físico global para el host.

Para obtener más información sobre cómo cambiar el umbral físico global , consulte Modificación de la configuración de limitación basada en recursos.
BizTalk:MessageAgent Uso de memoria física (MB)