Compartir vía


Paso 4: Configurar el entorno de BizTalk Server para pruebas de carga

En este tema se proporciona información para crear las ubicaciones de recepción, los puertos de recepción y los puertos de envío BizTalk Server necesarios para ejecutar el código de ejemplo descrito en los temas Paso 1: Crear una prueba unitaria para enviar documentos a BizTalk Server y paso 3: Crear una prueba de carga para realizar varias pruebas unitarias simultáneamente.

Configuración del entorno de BizTalk Server para pruebas de carga

Como se describe en el tema Paso 3: Crear una prueba de carga para realizar varias pruebas unitarias simultáneamente, la prueba de carga BTS_Messaging_Step está configurada para ejecutar las pruebas unitarias BTSMessaging y BTSMessaging2. A su vez, estas pruebas unitarias cargan una copia del mensaje C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml y la envían a los puntos de conexión BTSMessagingEP y BTSMessagingEP2 tal y como se define en la sección siguiente del archivo de configuración de la aplicación del proyecto (app.config):

<-- BTSMessagingEP --><endpoint address="net.tcp://BizTalk Server Computer:8123/btsloadtest" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="System.ServiceModel.Channels.IRequestChannel" name="BTSMessagingEP" /><endpoint address="net.tcp://BizTalk Server Computer:8123/btsloadtest" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="System.ServiceModel.Channels.IRequestChannel" name="BTSMessagingEP2" />

Nota

Como se indicó anteriormente, BizTalk Server Equipo es un marcador de posición para los nombres de equipo de BizTalk Server reales o, en caso de que los equipos de BizTalk Server estén configurados como miembros de un clúster de equilibrio de carga de red (NLB); BizTalk Server Equipo es un marcador de posición para el nombre o la dirección del servidor virtual NLB correspondiente.

Para este ejemplo, se usaron dos equipos BizTalk Server y la base de datos BizTalk Server cuadro de mensajes estaba en un equipo remoto de SQL Server.

Creación de hosts de envío y recepción de BizTalk Server

Siga los pasos del tema documentación de BizTalk Server Cómo crear un nuevo host para crear un host de BizTalk Server "Enviar" para puertos de envío y controladores de adaptadores de envío. Configure el host con las siguientes propiedades:

Propiedad Value
Nombre TxHost
Tipo In-Process
Permitir el seguimiento de host Asegúrese de que esta casilla está desactivada.
autenticación de confianza Asegúrese de que esta casilla está desactivada.
32 bits solamente Asegúrese de que esta casilla está desactivada.
Establecer este host como predeterminado del grupo Asegúrese de que esta casilla está desactivada.
Grupo de Windows El grupo de Windows que se usa para controlar el acceso a este host y a las instancias de host asociadas. El grupo ventana creado para el host en proceso predeterminado se denomina <Nombre> de equipo\Usuarios de aplicaciones de BizTalk (para una instalación de BizTalk Server de servidor único) o <Nombre> de dominio\Usuarios de la aplicación de BizTalk (para una instalación de varios servidores BizTalk Server, que requiere el uso de grupos de dominio). Nota:<El nombre> de equipo y <el nombre> de dominio son marcadores de posición para el nombre de equipo real o el nombre de dominio usados cuando se creó el grupo.

Si se crea un nuevo grupo para este host, debe tener los privilegios descritos en el tema Grupos host.

Repita los pasos que ha seguido al crear el host "Enviar" para crear un host de "recepción". Configure el host "Receive" con los siguientes valores de propiedad:

Propiedad Value
Nombre RxHost
Tipo In-Process
Permitir el seguimiento de host Asegúrese de que esta casilla está desactivada.
autenticación de confianza Asegúrese de que esta casilla está desactivada.
32 bits solamente Asegúrese de que esta casilla está desactivada.
Establecer este host como predeterminado del grupo Asegúrese de que esta casilla está desactivada.
Grupo de Windows El grupo de Windows que se usa para controlar el acceso a este host y a las instancias de host asociadas. El grupo ventana creado para el host en proceso predeterminado se denomina <Nombre> de equipo\Usuarios de aplicaciones de BizTalk (para una instalación de BizTalk Server de servidor único) o <Nombre> de dominio\Usuarios de la aplicación de BizTalk (para una instalación de varios servidores BizTalk Server, que requiere el uso de grupos de dominio). Nota:<El nombre> de equipo y <el nombre> de dominio son marcadores de posición para el nombre de equipo real o el nombre de dominio usados cuando se creó el grupo.

Si se crea un nuevo grupo para este host, debe tener los privilegios descritos en el tema Grupos host.

Crear instancias de los hosts de envío y recepción de BizTalk Server

Siga los pasos del tema documentación de BizTalk Server Procedimiento para agregar una instancia de host para crear e iniciar instancias del host de BizTalk Server "Enviar". Configure una instancia del host "Send" para que se ejecute en cada BizTalk Server del grupo BizTalk Server y configure cada instancia de host con los siguientes valores de propiedad:

Propiedad Valor
Nombre de host Seleccione TxHost en la lista desplegable junto a Nombre de host.
Servidor Seleccione el BizTalk Server que ejecutará esta instancia de host en la lista desplegable situada junto a Servidor.
Iniciar sesión 1. Haga clic en el botón Configurar para mostrar el cuadro de diálogo Credenciales de inicio de sesión.
2. En el cuadro de diálogo Credenciales de inicio de sesión, escriba los siguientes valores para las propiedades especificadas :
Propiedad
Inicio de sesión: nombre de la cuenta de usuario que es miembro del grupo de Windows asociado a este host de BizTalk Server.
Contraseña: contraseña de la cuenta de usuario especificada en el cuadro de texto Inicio de sesión.
3. Haga clic en Aceptar para cerrar el cuadro de diálogo Credenciales de inicio de sesión.
Deshabilite la instancia de host desde el inicio. Asegúrese de que esta casilla está desactivada.

Después de crear la instancia de host, haga clic con el botón derecho en la instancia de host y seleccione Iniciar en el menú contextual.

Repita los pasos que ha seguido al crear las instancias de host "Enviar" para crear instancias de host de "Recepción". Configure una instancia del host "Receive" para que se ejecute en cada BizTalk Server del grupo de BizTalk Server y configure cada instancia de host con los siguientes valores de propiedad:

Propiedad Valor
Nombre de host Seleccione RxHost en la lista desplegable junto a Nombre de host.
Server Seleccione el BizTalk Server que ejecutará esta instancia de host en la lista desplegable situada junto a Servidor.
Inicio de sesión 1. Haga clic en el botón Configurar para mostrar el cuadro de diálogo Credenciales de inicio de sesión.
2. En el cuadro de diálogo Credenciales de inicio de sesión, escriba los siguientes valores para las propiedades especificadas :
Propiedad
Inicio de sesión: nombre de la cuenta de usuario que es miembro del grupo de Windows asociado a este host de BizTalk Server.
Contraseña: contraseña de la cuenta de usuario especificada en el cuadro de texto Inicio de sesión.
3. Haga clic en Aceptar para cerrar el cuadro de diálogo Credenciales de inicio de sesión.
Deshabilitar inicio de instancia de host Asegúrese de que esta casilla está desactivada.

Después de crear la instancia de host, haga clic con el botón derecho en la instancia de host y seleccione Iniciar en el menú contextual.

Creación de un puerto de recepción de BizTalk Server

Siga los pasos del tema Creación de un puerto de recepción en la documentación de BizTalk Server para crear un puerto de recepción One-Way. Al crear el puerto de recepción, deje todas las propiedades en valores predeterminados, excepto como se indica en la tabla siguiente:

Propiedad Value
General\Name BTSLoadTestMessaging.OneWay.ReceivePort
General\Tipo de puerto Unidireccional
General\Autenticación Sin autenticación
General\Habilitar el enrutamiento para mensajes con errores Asegúrese de que esta casilla está desactivada.
General\Description Déjelo en blanco.
Asignaciones de entrada None
Seguimiento Asegúrese de que todas las casillas no estén activadas.
Ubicaciones de recepción Haga clic en Nuevo; se mostrará el cuadro de diálogo Propiedades de ubicación de recepción que se debe configurar como se describe en la sección siguiente, Crear una ubicación de recepción BizTalk Server.

Crear una ubicación de recepción de BizTalk Server

En el cuadro de diálogo Propiedades de ubicación de recepción que se muestra al crear el puerto de recepción BizTalk Server, aplique los valores de propiedad especificados:

Propiedad Value
Nombre: BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation
Controlador de recepción: RxHost
Canalización de recepción: PassThruReceive
Descripción: Deje este en blanco
Escriba: Seleccione WCF-Custom en la lista desplegable y, a continuación, haga clic en el botón Configurar ; se mostrará el cuadro de diálogo Propiedades de transporte personalizadas de WCF que se debe configurar como se describe en la sección siguiente, Configurar el transporte de recepción de WCF-Custom.

Configurar el transporte de recepción de WCF-Custom

En el cuadro de diálogo Propiedades de transporte personalizado de WCF que se muestra al crear la ubicación de recepción de BizTalk Server, deje todas las propiedades en valores predeterminados, excepto como se indica en la tabla siguiente:

Propiedad Value
General\Address (URI) net.tcp://localhost:8123/btsloadtest
Binding\Binding Type netTcpbinding
Binding\NetTcpBindingElement\listenBacklog 400
Binding\NetTcpBindingElement\maxConnections 400
Binding\Security\NetTcpSecurityElement\mode None
Behavior\ServiceBehavior\serviceThrottling\ServiceThrottlingElement Nota: Para agregar el comportamiento serviceThrottling a la lista de comportamientos, haga clic con el botón derecho en ServiceBehavior, haga clic en Agregar extensión, seleccione serviceThrottling en la lista de extensiones de comportamiento y, a continuación, haga clic en Aceptar. Establezca las propiedades ServiceThrottlingElement en los valores siguientes:

- maxConcurrentCalls 400
- maxConcurrentInstances 400
- maxConcurrentSessions 400
Behavior\ServiceBehavior\serviceDebug\ServiceDebugElement Nota: Para agregar el comportamiento serviceDebug a la lista de comportamientos, haga clic con el botón derecho en ServiceBehavior, haga clic en Agregar extensión, seleccione serviceDebug en la lista de extensiones de comportamiento y, a continuación, haga clic en Aceptar. Deje la lista de propiedades ServiceDebugElement en sus valores predeterminados (vacíos), excepto en las siguientes propiedades, que deben cambiarse a un valor true:

- httpHelpPageEnabled Verdad
- httpsHelpPageEnabled Verdad
- includeExceptionDetailInFaults Verdad

Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de transporte de WCF-Custom y, a continuación, haga clic en Aceptar de nuevo para cerrar el cuadro de diálogo Propiedades de ubicación de recepción.

Creación de un puerto de envío de BizTalk Server

Siga los pasos del tema How to Create a Send Port (Cómo crear un puerto de envío) en la documentación de BizTalk Server para crear un puerto de envío unidireccional estático. Al crear el puerto De envío, deje todas las propiedades en valores predeterminados, excepto como se indica en la tabla siguiente:

Propiedad Value
General\Name BTSLoadTest.Messaging.Send.WCF-Custom
General\Controlador de envío TxHost
General\Canalización de envío PassThruTransmit
Filtros\Nombre BTS.ReceivePortName
Filters\Operator ==
Filtros\Valor BTSLoadTest.Messaging.OneWay.ReceivePort
Filtros\Agrupar por Y Nota: Si estas propiedades están configuradas con los valores correctos, el filtro debe mostrarse como BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort se ve hacia la parte inferior de la página Filtros del cuadro de diálogo Propiedades de puerto de envío. Como resultado de aplicar este filtro, este puerto de envío se suscribe a los mensajes recibidos por BizTalk Server a través del puerto de recepción llamado BTSLoadTest.Messaging.OneWay.ReceivePort.
Seguimiento Asegúrese de que todas las casillas no estén activadas.
General\Type Seleccione WCF-Custom en la lista desplegable y, a continuación, haga clic en el botón Configurar ; se mostrará el cuadro de diálogo Propiedades de transporte personalizadas de WCF que se debe configurar como se describe en la sección siguiente, Configurar el transporte de envío de WCF-Custom.

Configurar el transporte de envío de WCF-Custom

En el cuadro de diálogo Propiedades de transporte personalizado de WCF que se muestra al crear el puerto de envío de BizTalk Server, deje todas las propiedades en valores predeterminados, excepto como se indica en la tabla siguiente:

Propiedad Value
General\Address (URI) net.tcp://<Nombre> de equipo:2001/TCP1 Importante:Nombre> del< equipo es un marcador de posición para el nombre de equipo real usado para hospedar IndigoService.exe, que está diseñado para consumir mensajes enviados a través de WCF. Dado que IndigoService.exe requiere muy pocos recursos, a menudo es perfectamente aceptable ejecutar IndigoService.exe en el equipo SQL Server usado para las bases de datos de grupo de BizTalk Server.
Binding\Binding Type customBinding

Al igual que con la mayoría de los tipos de enlace de WCF-Custom, el tipo customBinding Binding expone varias propiedades, que deben establecerse en los siguientes valores:

  1. En la sección Binding (Enlace ), hay una propiedad CustomBindingElement con una sección de configuración asociada. Deje todos los valores de la sección Configuración de la propiedad CustomBindingElement en sus valores predeterminados.

  2. A continuación, en CustomBindingElement , haga clic con el botón derecho en textMessageEncoding y seleccione Quitar extensión (Del). Del mismo modo, haga clic con el botón derecho en httpTransport y seleccione Quitar extensión (Del).

  3. Ahora haga clic con el botón derecho en CustomBindingElement y seleccione Agregar extensiones ins para mostrar el cuadro de diálogo Seleccionar extensión de elemento de enlace.

  4. Seleccione binaryMessageEncoding y haga clic en Aceptar para agregar la extensión de elemento binaryMessageEncoding . Repita los pasos para mostrar el cuadro de diálogo Seleccionar extensión de elemento de enlace y desplácese hacia abajo en la lista de extensiones de elementos disponibles hasta que vea la extensión del elemento tcpTransport , seleccione tcpTransport y haga clic en Aceptar.

  5. En CustomBindingElement , seleccione el elemento tcpTransport y, en la sección Configuración de tcpTransport, deje todas las propiedades en valores predeterminados, excepto como se indica en la tabla siguiente:

    Propiedad Value
    connectionBufferSize 2 097 152
    maxBufferSize 2 097 152
    maxPendingAccepts 400
    maxPendingConnections 400
    listenBacklog 400
    maxBufferPoolSize 2 097 152
    maxReceivedMessageSize 2 097 152
  6. En el elemento tcpTransport , seleccione el elemento ConnectionPoolSettings y deje todas las propiedades en los valores predeterminados, excepto la propiedad maxOutboundConnectionsPerEndpoint , que debe cambiarse a un valor de 400.

  7. Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de transporte de WCF-Custom y, a continuación, haga clic en Aceptar de nuevo para cerrar el cuadro de diálogo BTSLoadTest.Messaging.Send.WCF-Custom – Send Port Properties .

Configurar un equipo para consumir mensajes enviados por el puerto de envío de BizTalk Server

Como se ha descrito anteriormente, el IndigoService.exe está diseñado para consumir mensajes enviados a través de WCF. Incluye los siguientes 4 archivos y deben estar en el equipo que le gustaría ejecutar IndigoService.exe:

  1. \IndigoService\bin\Release\IndigoService.exe

  2. \IndigoService\bin\Release\IndigoService.exe.config

  3. \IndigoService\bin\Release\Response.xml

  4. \IndigoService\bin\Release\StartIndigoService.bat

    A continuación, inicie IndigoService.exe haciendo doble clic en StartIndigoService.bat. IndigoService.exe consume mensajes enviados al punto de conexión especificado en el archivo IndigoService.exe.config:

    <endpoint address="net.tcp://localhost:2001/TCP1" binding="netTcpBinding" bindingConfiguration="Binding1" name="endpoint1" contract="IndigoService.IServiceTwoWaysVoidNonTransactional" />

    Este es el motivo por el que la dirección de puerto de envío está configurada con una dirección (URI) de net.tcp://<nombre> de equipo:2001/TCP1

    Dado que IndigoService.exe requiere muy pocos recursos, a menudo es perfectamente aceptable ejecutar IndigoService.exe en el equipo SQL Server usado para las bases de datos de BizTalk Server.

Deshabilitar seguimiento y limitación para el grupo de BizTalk Server

Para determinar el rendimiento máximo absoluto sostenible del sistema, tanto el seguimiento de mensajes como la limitación deben deshabilitarse antes de comenzar las pruebas de carga. Esto se puede hacer mediante la consola de administración de BizTalk Server siguiendo estos pasos:

  1. Inicie la consola de administración de BizTalk Server. Haga clic en Inicio, seleccione Todos los programas, BizTalk Server 2010 y, a continuación, haga clic en Administración de BizTalk Server.

  2. En administración de BizTalk Server, seleccione el grupo de BizTalk si aparece o si no aparece, haga clic con el botón derecho en administración de BizTalk Server, seleccione Conectar al grupo existente, escriba el nombre de SQL Server que alberga la base de datos de administración de BizTalk Server del grupo de BizTalk junto a .SQL Server nombre: escriba el nombre de la base de datos de administración del grupo de BizTalk junto a Nombre de la base de datos: y, a continuación, haga clic en Aceptar.

  3. Haga clic con el botón derecho en el nodo Grupo de BizTalk y seleccione Configuración para mostrar el Panel de configuración de BizTalk.

  4. Haga clic para seleccionar Hosts en el panel izquierdo del Panel de configuración de BizTalk.

  5. Haga clic en la lista desplegable situada junto a Host para seleccionar uno de los hosts que se usarán durante las pruebas de rendimiento.

  6. Deje las propiedades en sus valores predeterminados, excepto como se indica en la tabla siguiente:

    Propiedad Value
    General\Mover datos de seguimiento a la base de datos DTA Desactive esta casilla si está activada.
    General\Solo 32 bits Desactive esta casilla si está activada.
    General\Intervalos de sondeo\Mensajería Se establece en un valor de 200000000
    General\Intervalos de sondeo\Orquestaciones Se establece en un valor de 200000000
    Limitación basada en recursos\Mensajes en proceso Se establece en un valor de 10000
    Limitación basada en recursos\Tamaño interno de la cola de mensajes Se establece en un valor de 10000
    Limitación basada en recursos\Recuento de mensajes en la base de datos Establecer en un valor de 0
    Limitación basada en recursos\Uso de memoria\Proceso virtual Establecer en un valor de 0
    Limitación basada en velocidad\Publicación\Invalidación de limitación Establézcalo en No limitar
    Limitación basada en velocidad\Entrega\Invalidación de limitación Establézcalo en No limitar
  7. Repita el proceso descrito en el paso 6 para cada host que se usará durante el transcurso de las pruebas de rendimiento.

  8. Haga clic para seleccionar Instancias de host en el panel izquierdo del Panel de configuración de BizTalk.

  9. Haga clic en la lista desplegable situada junto a Instancia de host: para seleccionar una de las instancias de host que se usarán para las pruebas de rendimiento.

  10. Deje los valores de propiedad en su configuración predeterminada, excepto cambie los subprocesos de trabajo máximo de .NET CLR a un valor de 100 y cambie los subprocesos de trabajo mínimo de .NET CLR a un valor de 25.

  11. Repita el proceso descrito en el paso 10 para cada instancia de host que se usará durante el transcurso de las pruebas de rendimiento.

    Aunque deshabilitar el seguimiento y la limitación no representa de ninguna manera lo que se debe hacer en un escenario de producción, ya que estas operaciones son tan costosas desde una perspectiva de rendimiento, tiene sentido deshabilitarlas para averiguar el verdadero rendimiento máximo sostenible (MST) de un entorno de BizTalk Server. Esto permite a los evaluadores ver claramente el impacto de cualquier ajuste de rendimiento que se haya aplicado al entorno. Ciertamente, se podría hacer un argumento que no se debe deshabilitar el seguimiento y si sabe desde el principio que la aplicación de BizTalk Server requerirá el seguimiento, debe habilitar el seguimiento. Dicho esto, se deben realizar todos los esfuerzos para deshabilitar la limitación con fines de pruebas de rendimiento. La limitación es muy útil para evitar que un BizTalk Server "supere" debido a una carga excesiva en un entorno de producción. Sin embargo, no quiere que se habilite la limitación durante las pruebas de rendimiento porque es costoso desde el punto de vista del rendimiento y porque si la limitación se inicia durante una prueba de carga, tendrá un tiempo muy difícil determinar qué nivel de rendimiento puede lograr realmente la aplicación BizTalk Server. En los temas siguientes se describe cómo realizar pruebas de carga de pasos para insertar el entorno de BizTalk Server más allá de MST y, a continuación, volver a escalar a MST real con pruebas de carga constantes. Si la limitación está habilitada, será casi imposible insertar el entorno de BizTalk más allá de MST para que pueda descubrir a su vez lo que es el verdadero MST.