Compartir vía


Cuellos de botella de nivel de sistema

En este tema se describe cómo abordar cuellos de botella comunes de nivel de sistema que pueden afectar al rendimiento de una solución de BizTalk Server.

Creación de una instantánea de la configuración de línea base

La recopilación de la siguiente información puede proporcionarle una instantánea de la configuración de línea base que puede usar para ayudar a corregir los cuellos de botella de nivel del sistema.

Recopilación de documentación

Revise la documentación de la arquitectura y la infraestructura del escenario.

Ejecución del Analizador de seguridad de línea base

Siga estos pasos para ejecutar el Analizador de seguridad de línea base:

  1. Use el Analizador de seguridad de línea base de Microsoft.

  2. Con una cuenta de administrador de dominio, inicie sesión en un equipo de la misma red que hospeda los equipos BizTalk Server y SQL Server.

  3. Instale microsoft Baseline Security Analyzer en el equipo actual (por ejemplo, uno de los equipos BizTalk Server o un equipo independiente).

  4. Ejecute un examen independiente (Iniciar examen), especificando como parámetro el nombre o la dirección IP de cada BizTalk Server y SQL Server equipo.

  5. Copie cada informe de seguridad (archivos .mbsa) del directorio %userprofile%\SecurityScans.

Ejecución del Analizador de procedimientos recomendados de BizTalk Server

Siga estos pasos para ejecutar el Analizador de procedimientos recomendados de BizTalk Server:

  1. Descargue el Analizador de procedimientos recomendados de BizTalk Server.

  2. Con una cuenta de usuario que forma parte del grupo de seguridad administrador de BizTalk Server, inicie sesión en un nodo BizTalk Server.

  3. Instale el Analizador de procedimientos recomendados de BizTalk Server en el equipo actual.

  4. Ejecute la herramienta y guarde el informe.

Ejecute MSInfo32 y guarde los resultados.

Siga estos pasos para ejecutar MSInfo32:

  1. Con un dominio o una cuenta de administrador local, inicie sesión en cada equipo BizTalk Server y SQL Server.

  2. Inicie un símbolo del sistema y cambie los directorios al directorio %windir%\system32 del equipo.

  3. Ejecute MSinfo32.exe desde el símbolo del sistema.

  4. Haga clic en el menú Archivo y seleccione el elemento de menú Exportar para exportar para guardar la configuración del equipo.

Exporte la configuración del registro TCP/IP del equipo de BizTalk Server y SQL Server.

Siga estos pasos para guardar el BizTalk Server y SQL Server configuración del Registro TCP/IP:

  1. Inicie un símbolo del sistema y cambie los directorios al directorio %windir%\system32 del equipo.

  2. Ejecute Regedit.exe desde el símbolo del sistema.

  3. Vaya a la siguiente clave en el Registro:

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] (network settings)
    
  4. Haga clic con el botón derecho en esta clave y seleccione Exportar para exportar la clave del Registro a un archivo.

Recopilar los archivos de configuración de BizTalk

En cada nodo de BizTalk Server, recopile el archivo de configuración de BizTalk Server, BTSNTSvc.exe.config (o BTSNTSvc64.exe.config para hosts de 64 bits), ubicado en la carpeta de instalación de BizTalk Server (por ejemplo, C:\Archivos de programa\Microsoft BizTalk Server 2010).

Recopilación de los archivos de configuración de .NET

En cada nodo de BizTalk Server, recopile los archivos de configuración de machine.config y web.config .NET Framework 4.0. Puede encontrar los archivos de configuración en la siguiente ubicación:

  • Para 32 bits: %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG carpeta

  • Para 64 bits: %windir%\Microsoft.NET\Framework64\v4.0.30319\CONFIG carpeta

Usar la herramienta MsgBoxViewer de BizTalk para recopilar información sobre la base de datos messageBox

Siga estos pasos para recopilar información sobre la base de datos messageBox mediante la herramienta MsgBoxViewer de BizTalk:

  1. Descargue la herramienta MsgBoxViewer de BizTalk, que está disponible en la BizTalk Health Monitor.

  2. Inicie sesión en el equipo BizTalk Server con una cuenta de usuario que forme parte del grupo de seguridad administrador de BizTalk Server.

  3. Copie el MsgBoxViewer.exe en el equipo de BizTalk Server.

  4. Inicie la herramienta.

  5. Haga clic en la pestaña Información opcional para recopilar y, a continuación, haga clic en Seleccionar toda la información.

  6. Haga clic en Iniciar para recopilar.

  7. Cuando la etiqueta Status muestra el mensaje End Collection (Finalizar recopilación ), cambie a la carpeta que contiene el archivo ejecutable MsgBoxViewer.exe y copie el informe resultante (.htm) y los archivos de registro.

Recopilar y almacenar el código fuente de todos los componentes usados en la solución

Almacene el código fuente de todos los componentes (por ejemplo, Orquestación, Componente de canalización personalizada y código de componentes auxiliares) en un recurso compartido de archivos independiente.

Solución inicial de problemas

Hay determinados componentes de una solución de BizTalk Server que, si no está habilitada, provocarán problemas de rendimiento independientemente del tamaño general o el diseño de la solución de BizTalk. Se deben completar las siguientes tareas preliminares de solución de problemas para descartar algunos de los "sospechosos habituales" antes de participar en un análisis exhaustivo de cuellos de botella de una solución de BizTalk.

  • Comprobación de que la instancia de host de seguimiento se está ejecutando: La instancia de host de seguimiento es responsable de mover los datos bam y HAT de la tabla TrackingData de la base de datos messageBox a las tablas de base de datos BizTalkDTADb o BAMPrimaryImport. Si la instancia de host de seguimiento no se está ejecutando, los datos de seguimiento se acumularán en la base de datos de Cuadro de mensajes y afectarán negativamente al rendimiento de la solución BizTalk Server.

  • Compruebe que el servicio Enterprise Single Sign-On (ENTSSO) se ejecuta en todos los equipos BizTalk Server: las instancias de host de BizTalk mantienen una dependencia en una instancia en ejecución local del servicio ENTSSO. Si el servicio ENTSSO no se está ejecutando en el BizTalk Server, las instancias de host del servidor tampoco podrán ejecutarse.

  • Compruebe que el servicio Agente SQL Server se está ejecutando en todos los equipos SQL Server: el servicio de Agente SQL Server debe ejecutarse para que los trabajos de BizTalk Agente SQL Server se ejecuten. Estos trabajos realizan funciones importantes para mantener los servidores en funcionamiento y en buen estado.

  • Compruebe que los trabajos de Agente SQL Server de BizTalk están habilitados y en ejecución sin excepciones: incluso si el servicio Agente SQL Server se está ejecutando, es imperativo que todos los trabajos predeterminados de BizTalk Agente SQL Server estén habilitados y ejecutándose correctamente.

  • Compruebe los registros de eventos de BizTalk Server y SQL Server: un examen cursor de los registros de eventos de BizTalk Server o SQL Server puede revelar un problema que, de lo contrario, podría tardar mucho tiempo en diagnosticar y resolver.

  • Ejecute el Analizador de procedimientos recomendados de BizTalk Server: el Analizador de procedimientos recomendados de BizTalk Server examina una implementación de BizTalk Server y genera una lista de problemas relacionados con los estándares de procedimientos recomendados. La herramienta realiza la comprobación en el nivel de configuración mediante la recopilación de datos de diferentes orígenes de información, como clases de Instrumental de administración de Windows (WMI), bases de datos SQL Server y entradas del Registro. A continuación, los datos se usan para evaluar la configuración de implementación. La herramienta solo lee e informa y no modifica ninguna configuración del sistema y no es una herramienta de ajuste automático. Descargue el Analizador de procedimientos recomendados de BizTalk Server.

Cuellos de botella del sistema de alto nivel

En esta sección se describen los cuellos de botella de nivel de sistema que pueden estar presentes en una solución de BizTalk Server y posibles estrategias de mitigación.

Cuellos de botella de E/S de disco

E/S de disco hace referencia al número de operaciones de lectura y escritura realizadas por la aplicación en un disco físico o en varios discos instalados en el servidor. Las actividades comunes que pueden provocar E/S de disco y cuellos de botella relacionados incluyen operaciones de E/S de archivos de larga duración, cifrado y descifrado de datos, lectura de datos innecesarios de tablas de base de datos y una memoria física insuficiente, lo que puede provocar una actividad de paginación excesiva. La velocidad del disco es otro factor que se debe tener en cuenta al evaluar los cuellos de botella de E/S de disco; los discos más rápidos proporcionan un mayor rendimiento y ayudan a reducir los cuellos de botella de E/S de disco.

En la tabla siguiente se proporcionan factores que se deben tener en cuenta al planear el subsistema de disco para una solución de BizTalk Server.

Factor del subsistema de disco Detalles
Memoria caché de disco y memoria física disponible Dado que la memoria se almacena en caché en el disco a medida que la memoria física se limita, asegúrese de que tiene una cantidad suficiente de memoria disponible. Cuando la memoria es escasa, se escriben más páginas en el disco, lo que da lugar a un aumento de la actividad del disco. Además, asegúrese de establecer el archivo de paginación en un tamaño adecuado. La caché de memoria de disco adicional ayudará a compensar los picos en las solicitudes de E/S de disco. Sin embargo, debe tenerse en cuenta que una caché de memoria de disco grande rara vez resuelve el problema de no tener suficientes ejes y tener suficientes ejes puede negar la necesidad de una caché de memoria de disco grande. Para obtener información sobre cómo configurar el archivo de paginación de Windows para obtener un rendimiento óptimo, vea la sección "Configurar el ARCHIVO PAGEFILE de Windows para obtener un rendimiento óptimo" en el tema Optimización del rendimiento del sistema operativo.
Tipo de controlador de almacenamiento Si tiene memoria caché respaldada por batería, habilite el almacenamiento en caché de escritura para mejorar el rendimiento de escritura en disco en los volúmenes de archivos de registro de transacciones y en los volúmenes de base de datos. El almacenamiento en caché de escritura proporciona un tiempo de respuesta de 2 ms para una solicitud de E/S de escritura, en lugar de un tiempo de respuesta de 10 a 20 ms sin el almacenamiento en caché de escritura habilitado. La habilitación del almacenamiento en caché de escritura mejora considerablemente la capacidad de respuesta de las solicitudes de escritura de cliente. El almacenamiento en caché de lectura no mejora el rendimiento en un escenario de BizTalk Server porque solo es útil para las lecturas de disco secuenciales, que solo se producen en los archivos de registro de transacciones.

Los archivos de registro de transacciones solo se leen cuando se reproducen, como después de una restauración de la base de datos o cuando un servidor no está apagado correctamente. Las cachés más grandes permiten almacenar más datos en búfer, lo que significa que se pueden acomodar períodos de saturación más largos. Si el controlador le permite configurar el tamaño de página de caché, debe establecerlo en 4 KB. Un tamaño mayor, como 8 KB, da como resultado una caché desperdiciada porque una solicitud de E/S de 4 KB ocupa toda la página de caché de 8 KB, lo que reduce la memoria caché utilizable en la mitad.
Husos Los ejes son más importantes que la capacidad y BizTalk Server rendimiento se mejora si los ejes admiten un gran número de solicitudes de E/S aleatorias. Planee no más del 80 % de uso total para asegurarse de que haya suficiente E/S disponible, incluso en casos de error de husillo.
Raid La solución RAID que use debe basarse en las ventajas y desventajas de costo y rendimiento adecuadas para su entorno. Por lo tanto, se puede recomendar más de un tipo de solución RAID para un requisito de almacenamiento de datos determinado. Las recomendaciones generales son las siguientes:

- Use Raid-1+0 (conjuntos seccionados en un conjunto reflejado) para las bases de datos BizTalk Server.
- Use Raid-1 (conjunto reflejado sin paridad) para los volúmenes del archivo de registro de transacciones.
- En general, Raid 5 (conjunto seccionado con paridad distribuida) no se recomienda, ya que Raid 5 no proporciona una confiabilidad, disponibilidad y rendimiento óptimos en comparación con otras configuraciones raid.
- Debido a la posibilidad de pérdida permanente de datos, nunca se debe usar una configuración raid-0 (conjunto seccionado sin paridad) en un entorno de producción de BizTalk Server.
Tipo de bus Un mayor rendimiento proporciona un mejor rendimiento. En general, los buses SCSI proporcionan un mejor rendimiento y escalabilidad que los buses IDE o ATA. Puede usar la siguiente ecuación para determinar el límite teórico de rendimiento para el tipo de bus:

(Velocidad de bus (en bits) / 8 bits por byte) Velocidad de funcionamiento X (en MHz) = rendimiento (en MB/s)

También puede mejorar el rendimiento de E/S de disco colocando varias unidades en buses de E/S independientes.

Contadores de rendimiento para medir cuellos de botella de E/S de disco

Nota

Al intentar analizar cuellos de botella de rendimiento de disco, siempre debe usar contadores de disco físicos. Sin embargo, si usa RAID de software, debe usar contadores de disco lógicos. En cuanto al disco lógico y los contadores de disco físico, los mismos contadores están disponibles en cada uno de estos objetos de contador. El administrador de volúmenes (o administradores) realiza un seguimiento de los datos del disco lógico y el administrador de particiones realiza un seguimiento de los datos del disco físico.

Se deben usar los siguientes contadores de rendimiento para determinar si el sistema está experimentando un cuello de botella relacionado con la E/S de disco:

  • PhysicalDisk\Avg. Disk Queue Length

    • Umbral: no debe ser mayor que el número de ejes más dos.

    • Importancia: este contador indica el número medio de solicitudes de lectura y escritura que se ponen en cola para el disco seleccionado durante el intervalo de ejemplo. Este contador es útil para recopilar datos de simultaneidad, incluidas las ráfagas de datos y las cargas máximas. Estos valores representan el número de solicitudes en vuelo por debajo del conductor que toma las estadísticas. Esto significa que las solicitudes no están necesariamente en cola, pero podrían estar en servicio o completadas y en el camino de copia de seguridad de la ruta de acceso. Entre las posibles ubicaciones en curso se incluyen las siguientes:

      • Cola de SCSIport o Storport

      • Cola de controladores OEM

      • Cola de controlador de disco

      • Cola de disco duro

      • Recepción activa de un disco duro

  • Disco físico\Media de longitud de cola de lectura de disco

    • Umbral: debe ser menor que dos.

    • Importancia: este contador indica el número medio de solicitudes de lectura que se ponen en cola para el disco seleccionado durante el intervalo de ejemplo.

  • Disco físico\Media de longitud de cola de escritura de disco

    • Umbral: debe ser menor que dos.

    • Importancia: este contador indica el número medio de solicitudes de escritura que se ponen en cola para el disco seleccionado durante el intervalo de ejemplo.

  • PhysicalDisk\Avg. Disk sec/Read

    • Umbral: no hay ningún valor específico.

      • Menos de 10 milisegundos (ms) = bueno

      • Entre 15 y 25 ms = fair

      • Mayor que 25 ms = pobre

    • Significado: este contador indica el tiempo medio, en segundos, de una operación de lectura de datos del disco. Si el número es mayor que 25 milisegundos (ms), significa que el sistema de disco está experimentando latencia al leer desde el disco. En el caso de los servidores críticos que hospedan BizTalk Server, el umbral aceptable es mucho menor, aproximadamente 10 ms.

  • PhysicalDisk\Avg. Disk sec/Write

    • Umbral: no hay ningún valor específico.

      • Menos de 10 milisegundos (ms) = bueno

      • Entre 15 y 25 ms = fair

      • Mayor que 25 ms = pobre

    • Significado: este contador indica el tiempo medio, en segundos, de una operación de escritura de datos en el disco. Si el número es mayor que 25 ms, el sistema de disco experimenta latencia al escribir en el disco. En el caso de los servidores críticos que hospedan BizTalk Server, el umbral aceptable es mucho menor, aproximadamente 10 ms.

  • PhysicalDisk\Avg. Disk sec/Transfer

    • Umbral: no debe tener más de 18 milisegundos.

    • Importancia: este contador indica el tiempo, en segundos, de la transferencia media de disco. Esto puede indicar una gran cantidad de fragmentación de disco, discos lentos o errores de disco. Multiplique los valores de los contadores Disco físico\Promedio de disco/Transferencia y Memoria\Páginas/s . Si el producto de estos contadores supera el 0,1, la paginación tarda más del 10 % del tiempo de acceso al disco, por lo que necesita más memoria física disponible.

  • PhysicalDisk\Disk Writes/sec

    • Umbral: depende de las especificaciones del fabricante.

    • Importancia: este contador indica la tasa de operaciones de escritura en el disco.

  • Procesador\% de tiempo de DPC, % de tiempo de interrupción y % de tiempo con privilegios: Si el tiempo de interrupción y la llamada a procedimiento diferido (DPC) son una gran parte del tiempo con privilegios, el kernel pasa una cantidad significativa de tiempo procesando solicitudes de E/S. En algunos casos, el rendimiento se puede mejorar configurando interrupciones y afinidad de DPC en un pequeño número de CPU en un sistema multiprocesador, lo que mejora la localidad de la memoria caché. En otros casos, funciona mejor para distribuir las interrupciones y los DPC entre muchas CPU, a fin de evitar que la actividad de interrupción y DPC se convierta en un cuello de botella. Para obtener información sobre el uso de la herramienta De configuración del filtro de interrupción para enlazar interrupciones del adaptador de red a procesadores específicos en equipos multiprocesador, vea la sección "Usar la herramienta Configuración del filtro de interrupción para enlazar interrupciones del adaptador de red a procesadores específicos en equipos multiprocesador" en Optimización del rendimiento del sistema operativo.

  • Procesador\DPCs en cola por segundo - Mide cómo los DPC consumen tiempo de CPU y recursos de kernel.

  • Procesador\Interrupciones/s - Otra medida de cómo las interrupciones consumen tiempo de CPU y recursos de kernel. Los controladores de disco modernos suelen combinar o combinar interrupciones para que una sola interrupción produzca el procesamiento de varias finalizaciones de E/S. Por supuesto, existe un equilibrio entre retrasar las interrupciones (y, por lo tanto, las finalizaciones) y la redistribución del tiempo de procesamiento de la CPU.

Opciones de optimización de E/S de disco

Si determina que la E/S de disco es un cuello de botella en su entorno, se pueden usar las técnicas siguientes para aliviar el cuello de botella:

  • Desfragmentación de los discos: Use la utilidad PageDefrag disponible para desfragmentar el archivo de paginación de Windows y asignar previamente las tablas de archivos maestros.

  • Usar conjuntos de franjas para procesar solicitudes de E/S simultáneamente a través de varios discos: Use volúmenes reflejados para proporcionar tolerancia a errores y aumentar el rendimiento de E/S. Si no necesita tolerancia a errores, implemente conjuntos de franjas para leer y escribir rápidamente y mejorar la capacidad de almacenamiento. Cuando se usan conjuntos de franjas, el uso por disco se reduce porque el trabajo se distribuye entre los volúmenes y aumenta el rendimiento general. Si agrega discos adicionales en un conjunto de franjas no aumenta el rendimiento, es posible que el sistema experimente un cuello de botella debido a la contención entre discos por parte del controlador de disco. En este caso, agregar un controlador de disco adicional ayudará a distribuir la carga y aumentar el rendimiento.

  • Distribuir la carga de trabajo entre varias unidades: Los clústeres de Windows y el sistema de archivos distribuido proporcionan soluciones para el equilibrio de carga en varias unidades de disco.

  • Limitar el uso de la compresión de archivos o el cifrado: La compresión y el cifrado de archivos son operaciones intensivas de E/S. Solo debe usarlos cuando sea absolutamente necesario.

  • Deshabilitar la creación de nombres cortos: Si no admite MS-DOS para clientes de Windows 3.x, deshabilite los nombres cortos para mejorar el rendimiento. Para obtener más información sobre cómo deshabilitar la creación de nombres cortos, vea la sección "Deshabilitar la generación de nombre de archivo corto (8.3) en Optimización del rendimiento del sistema operativo.

  • Deshabilitar la última actualización de acceso: De forma predeterminada, NTFS actualiza la marca de fecha y hora del último acceso a los directorios cada vez que atraviesa el directorio. Para un gran volumen NTFS, este proceso de actualización puede dificultar el rendimiento. Para obtener más información sobre cómo deshabilitar las últimas actualizaciones de acceso, vea la sección "Deshabilitar las últimas actualizaciones de acceso NTFS" en Optimización del rendimiento del sistema operativo.

    Precaución

    Algunas aplicaciones, como las utilidades de copia de seguridad incrementales, dependen de la información de actualización NTFS y no funcionarán correctamente sin ella.

  • Reserve el espacio adecuado para la tabla de archivos maestros: Agregue la entrada NtfsMftZoneReservation al registro en función del número de archivos que se almacenan normalmente en los volúmenes NTFS. Al agregar esta entrada al Registro, el sistema reserva espacio en el volumen de la tabla de archivos maestros. Reservar espacio de esta manera permite que la tabla de archivos maestros crezca de forma óptima. Si los volúmenes NTFS suelen almacenar relativamente pocos archivos, establezca el valor de esta entrada del Registro en el valor predeterminado de 1. Normalmente, puede usar un valor de 2 o 3 si los volúmenes NTFS almacenan un número moderado de archivos y usan un valor de 4 (el máximo) si los volúmenes NTFS tienden a contener un número relativamente grande de archivos. Sin embargo, asegúrese de probar cualquier configuración superior a 2, ya que estos valores mayores hacen que el sistema reserve una parte mucho mayor del disco para la tabla de archivos maestros. Para obtener más información sobre cómo agregar NtfsMftZoneReservation al registro, consulte la sección "Aumentar el espacio disponible para la tabla de archivos maestros" en Optimización del rendimiento del sistema operativo.

  • Uso de los sistemas de disco más eficaces disponibles: Además del disco físico que se usa, tenga en cuenta el tipo de controlador de disco y cableado que se usará. Un subsistema de disco eficaz también debe proporcionar controladores que admitan la moderación de interrupciones o la prevención de interrupciones para mitigar la actividad de interrupción del procesador causada por la E/S del disco.

  • Asegúrese de que usa la configuración RAID adecuada: Use RAID 10 (seccionamiento y reflejo) para obtener un rendimiento óptimo y tolerancia a errores. El inconveniente es que el uso de RAID 10 es caro. Evite usar RAID 5 cuando tenga operaciones de escritura extensas. Para obtener más información sobre cómo implementar RAID en un entorno de BizTalk Server, consulte la sección "Infraestructura de disco" en la optimización de base de datos de BizTalk Server.

  • Considere la posibilidad de usar particiones de base de datos: Si tiene un cuello de botella de base de datos, considere la posibilidad de usar particiones de base de datos y asignar discos a tablas y registros de transacciones específicos. El propósito principal de las particiones es superar los cuellos de botella de disco de las tablas grandes. Si tiene una tabla con un gran número de filas y determina que es el origen de un cuello de botella, considere la posibilidad de usar particiones. Para SQL Server, puede usar grupos de archivos para mejorar el rendimiento de E/S. Puede asociar tablas a grupos de archivos y, a continuación, asociar los grupos de archivos a un disco duro específico. Para obtener más información sobre el uso de la optimización de grupos de archivos para las bases de datos de BizTalk Server, consulte Optimización de grupos de archivos para las bases de datos.

  • Considere la posibilidad de agregar memoria física si tiene errores excesivos de página: Un valor alto para el contador de rendimiento Memoria: páginas/s podría indicar una paginación excesiva que aumentará la E/0 del disco. Si esto ocurre, considere la posibilidad de agregar memoria física para reducir la E/S del disco y aumentar el rendimiento.

  • Considere la posibilidad de usar un disco con una clasificación de RPM superior o mediante un dispositivo de red de área de almacenamiento (SAN): Los discos con clasificaciones rpm más altas ofrecen un rendimiento mejorado en comparación con los discos con clasificaciones rpm más bajas. Normalmente, los dispositivos SAN ofrecen un rendimiento de nivel superior, pero a un precio premium.

  • Siga las recomendaciones de Optimización del rendimiento de la base de datos. En este tema se proporcionan varias recomendaciones para optimizar el rendimiento de la base de datos antes y después de configurar BizTalk Server.

Cuellos de botella de CPU

Cada aplicación que se ejecuta en un servidor obtiene un segmento de tiempo de la CPU. Es posible que la CPU pueda controlar de forma eficaz todos los procesos que se ejecutan en el equipo o que se puedan sobrecargar. Al examinar la actividad del procesador y la actividad de procesos individuales, como la creación de subprocesos, el cambio de subprocesos y el cambio de contexto, puede obtener información sobre la carga de trabajo y el rendimiento del procesador.

Es posible que tenga un cuello de botella de CPU si...

  • El valor del contador de rendimiento Procesador\% tiempo de procesador suele superar el 75 %.

  • El valor del contador de rendimiento System\ Processor Queue Length es 2 o más durante un período de tiempo sostenido.

  • El valor de los contadores de rendimiento Processor\% Privileged Time o System\Context Switches/sec son inusualmente altos.

    Si el valor del contador de rendimiento Procesador\ % tiempo de procesador es alto, se produce la puesta en cola y, en la mayoría de los escenarios, el valor de System\ Processor Queue Length también será alto.

Contadores de rendimiento para medir cuellos de botella de CPU

Se deben usar los siguientes contadores de rendimiento para determinar si el sistema está experimentando un cuello de botella relacionado con la CPU:

  • Procesador\% tiempo de procesador

    • Umbral: debe ser inferior al 85 %.

    • Importancia: este contador es el indicador principal de la actividad del procesador. Los valores altos no necesariamente son incorrectos. Sin embargo, si los otros contadores relacionados con el procesador aumentan linealmente, como procesador\% tiempo con privilegios o longitud de cola del sistema\procesador, puede que valga la pena investigar el uso elevado de la CPU.

  • Procesador\% tiempo con privilegios

    • Umbral: una figura que supera constantemente el 75 % indica un cuello de botella.

    • Importancia: este contador indica el porcentaje de tiempo que se ejecuta un subproceso en modo con privilegios. Cuando la aplicación llama a funciones del sistema operativo (por ejemplo, para realizar E/S de archivo o de red o para asignar memoria), estas funciones del sistema operativo se ejecutan en modo con privilegios.

  • Procesador\% de tiempo de interrupción

    • Umbral: depende del procesador.

    • Importancia: este contador indica el porcentaje de tiempo que el procesador dedica a recibir y atender interrupciones de hardware. Este valor es un indicador indirecto de la actividad de los dispositivos que generan interrupciones, como adaptadores de red. Un aumento dramático en este contador indica posibles problemas de hardware.

  • System\Processor Queue Length

    • Umbral: un valor medio constantemente mayor que 2 indica un cuello de botella.

    • Importancia: si hay más tareas listas para ejecutarse que los procesadores, los subprocesos se ponen en cola. La cola del procesador es la colección de subprocesos que están listos pero que el procesador no puede ejecutar porque otro subproceso se está ejecutando actualmente. Una cola sostenida o periódica de más de dos subprocesos es una indicación clara de un cuello de botella del procesador. Puede obtener más rendimiento reduciendo el paralelismo en esos casos.

      Puede usar este contador junto con el contador Procesador\% tiempo de procesador para determinar si la aplicación puede beneficiarse de más CPU. Hay una sola cola para el tiempo del procesador, incluso en equipos multiprocesador. Por lo tanto, en un equipo multiprocesador, divida el valor de Longitud de cola del procesador (PQL) por el número de procesadores que atiende la carga de trabajo.

      Si la CPU está muy ocupada (un 90 % o un mayor uso) y el promedio de PQL es constantemente mayor que 2 por procesador, es posible que tenga un cuello de botella de procesador que podría beneficiarse de agregar CPU. O bien, podría reducir el número de subprocesos y poner más en cola en el nivel de aplicación. Esto provocará menos cambio de contexto y menos cambio de contexto es bueno para reducir la carga de CPU. Una razón común para un valor PQL de 2 o superior con un uso bajo de CPU es que las solicitudes de tiempo del procesador llegan aleatoriamente y los subprocesos exigen cantidades irregulares de tiempo desde el procesador. Esto significa que el procesador no es un cuello de botella, pero que se debe mejorar la lógica de subprocesos de la aplicación.

  • System\Context Switches/sec

    • Umbral: como regla general, una velocidad de conmutación de contexto inferior a 5000 por segundo por procesador no vale la pena preocuparse. Si las tasas de cambio de contexto superan los 15 000 por segundo por procesador, el cambio de contexto puede convertirse en un cuello de botella.

    • Importancia: el cambio de contexto se produce cuando un subproceso de prioridad más alta adelanta un subproceso de prioridad inferior que se está ejecutando actualmente o cuando un subproceso de prioridad alta bloquea otros subprocesos. Se pueden producir altos niveles de cambio de contexto cuando muchos subprocesos comparten el mismo nivel de prioridad. Esto suele indicar que hay demasiados subprocesos que compiten por los procesadores del sistema. Si el uso del procesador y los niveles de cambio de contexto son bajos, suele ser una indicación de que los subprocesos están bloqueados.

Resolución de cuellos de botella de CPU

El primer paso es identificar qué proceso consume un tiempo excesivo del procesador. Use el Administrador de tareas de Windows para identificar qué proceso consume altos niveles de CPU examinando la columna CPU en la página Procesos . También puede determinarlo supervisando Proceso\%Tiempo de procesador en Monitor de rendimiento y seleccionando los procesos que desea supervisar.

Otra herramienta eficaz para determinar qué procesos consumen un tiempo excesivo de CPU es el Generador de perfiles de sistema de equipo de Visual Studio que está disponible con el conjunto de visual Studio Team System (VSTS). Para obtener más información sobre el uso de Visual Studio Team System Profiler, consulte la documentación de Visual Studio Team System.

Después de determinar que la CPU es un cuello de botella, tiene varias opciones, incluidas las siguientes:

  • Agregue varios procesadores si tiene aplicaciones multiproceso. Considere la posibilidad de actualizar a un procesador más eficaz si la aplicación tiene un solo subproceso.

  • Si observa una alta tasa de cambio de contexto, considere la posibilidad de reducir el número de subprocesos del proceso antes de aumentar el número de procesadores.

  • Analice y ajuste la aplicación que está causando un uso elevado de la CPU. Puede volcar el proceso en ejecución mediante la utilidad ADPLUS y analizar la causa mediante Windbg. Estas utilidades forman parte del kit de herramientas de depuración de Windows. Puede descargar estas herramientas en Herramientas de depuración para Windows.

  • Analice el registro de instrumentación generado por la aplicación para aislar el subsistema que tarda el tiempo máximo en la ejecución. Determine si una revisión de código sería más beneficiosa que simplemente ajustar el entorno de BizTalk Server.

Nota

Aunque puede cambiar el nivel de prioridad de proceso de una aplicación mediante el Administrador de tareas o desde un símbolo del sistema, normalmente debe evitar hacerlo.

Cuellos de botella de memoria

Al evaluar cuellos de botella relacionados con la memoria, considere asignaciones innecesarias, limpieza ineficaz y mecanismos de administración de estado y almacenamiento en caché inadecuados. Para resolver cuellos de botella relacionados con la memoria, optimice el código para eliminar estos problemas y, a continuación, ajuste la cantidad de memoria asignada a las aplicaciones. Si determina durante el ajuste de la contención de memoria y la paginación excesiva, es posible que tenga que agregar memoria física adicional al servidor. La memoria baja conduce a un aumento de la paginación del espacio de direcciones virtuales de una aplicación hacia y desde el disco. Si la paginación se vuelve excesiva, la E/S de disco aumentará y afectará negativamente al rendimiento general del sistema.

Es posible que tenga un cuello de botella de memoria si...

  • El valor del contador de rendimiento Memory\Available MBytes es bajo, ya sea debido a limitaciones de memoria del sistema o a una aplicación que no libera memoria. Supervise el valor del contador de rendimiento Process\Working Set para cada proceso que se esté ejecutando. Si el valor de Process\Working Set sigue siendo alto incluso cuando el proceso no está activo, puede ser una indicación de que el proceso no está liberando memoria como debería.

  • El valor del contador de rendimiento Memory\Pages/sec es alto. La media de memoria\Entradas de páginas/s dividida por la media de lecturas de memoria\páginas por segundo proporciona el número de páginas por lectura de disco. Este valor no suele superar las cinco páginas por segundo. Un valor mayor que cinco páginas por segundo indica que el sistema está gastando demasiado tiempo en paginación y requiere más memoria (suponiendo que la aplicación se ha optimizado).

Contadores de rendimiento para medir cuellos de botella de memoria

Se deben usar los siguientes contadores de rendimiento para determinar si el sistema está experimentando un cuello de botella relacionado con la memoria:

  • Memoria\Mbytes disponibles

    • Umbral: un valor coherente de menos del 20 al 25 por ciento de la RAM instalada es una indicación de memoria insuficiente.

    • Importancia: esto indica la cantidad de memoria física disponible para los procesos que se ejecutan en el equipo. Tenga en cuenta que este contador muestra solo el último valor observado. No es un promedio.

  • Memoria\Lecturas de página/s

    • Umbral: los valores sostenidos de más de cinco indican un gran número de errores de página para las solicitudes de lectura.

    • Importancia: este contador indica que el conjunto de trabajo de un proceso es demasiado grande para la memoria física disponible que está causando memoria en el disco. Muestra el número de operaciones de lectura, sin tener en cuenta el número de páginas recuperadas en cada operación. Los valores más altos indican un cuello de botella de memoria.

      Si una tasa baja de operaciones de lectura de página coincide con valores altos para disco físico\% tiempo de disco y disco físico\Longitud media de cola de disco, puede existir una condición de cuello de botella de E/S de disco. Si un aumento de la longitud de la cola no va acompañado de una disminución de la velocidad de lectura de páginas, existe un cuello de botella de memoria debido a una memoria física insuficiente.

  • Memoria\Páginas/s

    • Umbral: un valor sostenido de más de cinco indica un cuello de botella.

    • Importancia: este contador indica la velocidad a la que se leen o escriben páginas en el disco para resolver errores de páginas difíciles. Multiplique los valores de los contadores de rendimiento Disco físico\Promedio de disco/ transferencia y memoria\Pages/s . Si el producto de estos valores supera el 0,1, la paginación usa más del 10 % del tiempo de acceso al disco, lo que indica que hay suficiente memoria física disponible.

  • Memory\Pool Nonpaged Bytes

    • Umbral: observe el valor de Memory\Pool Nonpaged Bytes para un aumento del 10 por ciento o más de su valor en el inicio del sistema.

    • Importancia: un aumento del 10 por ciento o más del valor en el inicio puede ser una indicación de una fuga de memoria.

  • Server\Pool Nonpaged Failures

    • Umbral: los valores normales distintos de cero indican un cuello de botella.

    • Importancia: este contador indica el número de veces que se han producido errores en las asignaciones del grupo no paginado. El grupo no paginado contiene páginas del espacio de direcciones virtuales de un proceso que no se van a intercambiar al archivo de página del disco, como una tabla de objetos kernel de proceso. La disponibilidad del grupo no paginado determina cuántos procesos, subprocesos y otros objetos de este tipo se pueden crear. Cuando se producen errores en las asignaciones del grupo no paginado, esto puede deberse a una pérdida de memoria en un proceso, especialmente si el uso del procesador no ha aumentado en consecuencia.

  • Errores paginados de servidor\grupo

    • Umbral: no hay ningún valor específico.

    • Importancia: este contador indica el número de veces que se han producido errores en las asignaciones del grupo paginado. Un valor positivo para este contador es una indicación de que el equipo no tiene memoria física suficiente o que el archivo de paginación de Windows es demasiado pequeño.

  • Server\Pool Nonpaged Peak

    • Umbral: no hay ningún valor específico.

    • Importancia: este es el número máximo de bytes del grupo no paginado que el servidor ha reservado para su uso en cualquier punto. Indica la cantidad de memoria física que debe tener el equipo. Dado que el grupo no paginado debe estar residente en memoria física y porque hay que dejar algo de memoria para otras operaciones, como regla general, el equipo debe tener instalada memoria física que es 4 veces el valor indicado para este contador.

  • Memoria\Bytes de caché

    • Umbral: no hay ningún valor específico.

    • Importancia: supervisa el tamaño de la memoria caché en condiciones de carga diferentes. Este valor de este contador de rendimiento indica el tamaño de la caché de archivos estáticos. De forma predeterminada, este contador usa aproximadamente el 50 % de la memoria disponible, pero disminuye si se reduce la memoria disponible, lo que afecta al rendimiento del sistema.

  • Memoria\Errores de caché/seg.

    • Umbral: no hay ningún valor específico.

    • Importancia: este contador indica la frecuencia con la que el sistema operativo busca datos en la memoria caché del sistema de archivos, pero no lo encuentra. Este valor debe ser lo más pequeño posible.

  • Porcentaje de aciertos de lectura de caché\MDL

    • Umbral: cuanto mayor sea este valor, mejor será el rendimiento de la caché del sistema de archivos. Los valores deben estar lo más cerca posible del 100 %.

    • Importancia: este contador proporciona el porcentaje de solicitudes de lectura de lista de descriptores de memoria (MDL) a la memoria caché del sistema de archivos, donde la memoria caché devuelve el objeto directamente en lugar de requerir una lectura del disco duro.

  • Process\Working Set

    • Umbral: no hay ningún valor específico.

    • Importancia: el conjunto de trabajo es el conjunto de páginas de memoria cargadas actualmente en memoria (físicas y virtuales). Si el sistema tiene suficiente memoria, puede mantener suficiente espacio en el espacio de trabajo para que no necesite realizar operaciones de disco para paginar la memoria en el disco. Sin embargo, si no hay memoria suficiente, el sistema intenta reducir el espacio de trabajo quitando la memoria de los procesos que producen un aumento en los errores de página. Cuando aumenta la tasa de errores de página, el sistema intenta aumentar el conjunto de trabajo del proceso. Si observa fluctuaciones amplias en el conjunto de trabajo, puede indicar una escasez de memoria. Los valores más altos del conjunto de trabajo también pueden deberse a varios ensamblados de una aplicación. Puede mejorar el conjunto de trabajo mediante ensamblados compartidos en la caché global de ensamblados.

Resolución de cuellos de botella de memoria

Si determina que la memoria es un cuello de botella en el entorno de BizTalk Server, use uno o varios de los métodos siguientes para resolver el cuello de botella:

  • Ajuste la cantidad de memoria asignada si puede controlar la asignación. Por ejemplo, puede ajustar esto para BizTalk Server, ASP.NET y SQL Server.

  • Aumente el tamaño del archivo de paginación de Windows y siga los pasos descritos en la sección "Configurar el ARCHIVO PAGEFILE de Windows para obtener un rendimiento óptimo" de Optimización del rendimiento del sistema operativo.

  • Desactive los servicios que no se usan. Al detener los servicios que no se usan con regularidad, se ahorra memoria y se mejora el rendimiento del sistema. Para obtener más información, vea la sección "Deshabilitar servicios no esenciales" de Optimización del rendimiento del sistema operativo.

  • Quite los protocolos y controladores innecesarios. Incluso los protocolos inactivos usan espacio en los grupos de memoria paginados y no paginados. Los controladores también consumen memoria, por lo que debe quitar los innecesarios. Para obtener más información, vea la sección "Quitar protocolos de red innecesarios" de Optimización del rendimiento del sistema operativo.

  • Instale memoria física adicional en los equipos del entorno de BizTalk Server.

Nota

En un sistema de 32 bits, BizTalk puede usar un máximo de 2 GB de memoria, el límite aumenta a 3 GB con BizTalk Server 2010 y versiones posteriores si se usa el modificador /3GB. Para obtener más información sobre el uso de memoria, consulta Límites de memoria para versiones de Windows.

Cuellos de botella de E/S de red

Es posible que tenga un cuello de botella de E/S de red si...

  • El valor del contador de rendimiento Interfaz de red\Bytes Total/s supera el 80 % del ancho de banda de red disponible.

  • El valor del contador de rendimiento Server\Bytes Total/s es mayor que el 50 % del ancho de banda de red disponible.

Contadores de rendimiento para medir cuellos de botella de E/S de red

Los siguientes contadores de rendimiento se deben usar para medir la E/S de red y determinar si el sistema está experimentando un cuello de botella relacionado con la E/S de red:

  • Interfaz de red\Total de bytes/s

    • Umbral: valor sostenido de más del 80 por ciento de la capacidad de red.

    • Importancia: este contador indica la velocidad a la que se envían y reciben bytes a través de cada adaptador de red. Este contador ayuda a determinar si un adaptador de red está saturado y si debe agregar uno o varios adaptadores de red para aumentar el ancho de banda de red disponible.

  • Interfaz de red\Bytes recibidos/s

    • Umbral: no hay ningún valor específico.

    • Importancia: este contador indica la velocidad a la que se reciben bytes a través de cada adaptador de red. Use el valor de este contador para calcular la velocidad de los datos entrantes como un porcentaje del ancho de banda total disponible. Esto ayudará a determinar si se debe aumentar el ancho de banda de red en el cliente que envía datos a BizTalk Server o si se debe aumentar el ancho de banda de red en el propio equipo de BizTalk Server.

  • Interfaz de red\Bytes enviados/s

    • Umbral: no hay ningún valor específico.

    • Significado: este contador indica la velocidad a la que se envían bytes a través de cada adaptador de red. Use el valor de este contador para calcular la tasa de datos salientes como un porcentaje del ancho de banda total disponible. Esto ayudará a determinar si se debe aumentar el ancho de banda de red en el BizTalk Server enviar datos a un cliente o si se debe aumentar el ancho de banda de red en el equipo cliente que recibe datos de BizTalk Server.

  • Servidor\Total de bytes/s

    • Umbral: valor sostenido de más del 50 por ciento de la capacidad de red.

    • Significado: este contador indica el número de bytes enviados y recibidos a través de la red. Los valores más altos indican un cuello de botella de E/S de red. Si la suma de Bytes Total/s para todos los servidores es aproximadamente igual a la velocidad de transferencia máxima de la red, considere la posibilidad de subredes de la red para mejorar el rendimiento. Para obtener más información sobre la subred de una red para mejorar el rendimiento, consulte la sección Subredes de la optimización de base de datos de BizTalk Server.

Resolución de cuellos de botella de E/S de red

Si determina que la E/S de red es un cuello de botella en su entorno, use uno o varios de los métodos siguientes para resolver el cuello de botella:

Consulte también

Búsqueda y eliminación de cuellos de botella