Compartir a través de


Solución de problemas con Monitor de rendimiento

Este artículo ayuda a solucionar problemas con Monitor de rendimiento.

¿Qué es Monitor de rendimiento (perfmon)?

Después de haber estado disponible en varias iteraciones desde los primeros días de Windows, Monitor de rendimiento es un complemento MMC en Windows que ayuda a supervisar el uso del sistema y varias métricas de rendimiento. La vista predeterminada al abrir muestra algunas áreas diferentes y métricas en tiempo real, entre las que se incluyen:

  • Monitor de rendimiento: visualización en tiempo real de las métricas
  • Conjuntos de recopiladores de datos: recopilación de datos definida dentro de un intervalo de tiempo determinado
  • Informes: los datos recopilados en los conjuntos de recopiladores de datos

Preguntas antes de la recopilación de datos

Una vez que encuentre problemas, obtenga más información sobre lo que ha ocurrido antes de cualquier solución de problemas y recopilación de datos.

  • ¿Qué tipo de problema?
  • ¿Se puede reproducir este problema?
  • ¿El problema se produce esporádicamente? Si es así, ¿qué acciones realizó el usuario?
  • ¿Hay un patrón observado? Si es así, ¿qué tipo de patrón?
  • ¿Solo sucede una vez y no se vuelve a producir?

Por ejemplo, se produce un problema de uso elevado de cpu esporádicamente. A veces, este problema se produce cinco minutos después de que se inicie el sistema, a veces después de dos horas, etc. No se observa ningún patrón. Al buscar el Administrador de tareas u otras herramientas de supervisión, no puede observarlo o no está seguro de si la salida de las herramientas de supervisión muestra lo que sucede.

En esta situación, necesita información general sobre los recursos del sistema. Esto se puede lograr con una Monitor de rendimiento de larga duración.

Nota

Monitor de rendimiento no tiene acceso al kernel y no registra dicha información. Además, Monitor de rendimiento es ligero en comparación con otras herramientas de registro para problemas de uso elevado de la CPU y es una herramienta integrada. Puede ejecutar Monitor de rendimiento local o remotamente.

Ejecutar Monitor de rendimiento localmente

Puede agregar contadores según sea necesario. Abra un símbolo del sistema con privilegios elevados y ejecute los siguientes comandos:

  1. Cree un conjunto de recopiladores de datos:

    Logman.exe create counter CORE_%computername% -f bin -v mmddhhmm -max 2048 -c "\Memory\*" "\Cache\*" "\Objects\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\PhysicalDisk(*)\*" "\LogicalDisk(*)\*" "\Processor(*)\*" "\Processor Information(*)\*" "\Process(*)\*" "\Server\*" "\System\*" "\Server Work Queues(*)\*" "\Terminal Services\*" "\Terminal Services Session(*)\*" -si 00:00:01
    

    Nota

    -max 2048 significa que el tamaño máximo del archivo de registro es de 2 GB. -si 00:00:01 significa que el intervalo es 1 segundo. Puede cambiar esta configuración en función de sus necesidades.

  2. Inicie el conjunto de recopiladores de datos:

    logman start CORE_%computername%
    
  3. Detenga el seguimiento que se almacenará en c:\perflogs\Admin:

    logman stop CORE_%computername%
    

Ejecutar Monitor de rendimiento de forma remota

Para configurar Monitor de rendimiento para supervisar el sistema remoto, abra un símbolo del sistema con privilegios elevados y ejecute los siguientes comandos:

  1. Cree un conjunto de recopiladores de datos:

    Logman create counter <LOGNAME> -u <DOMAIN\USERNAME> * -f bincirc -v mmddhhmm -max 500 -c "\\<SERVERNAME>\LogicalDisk(*)\*" "\\<SERVERNAME>\Memory\*" "\\<SERVERNAME>\Network Interface(*)\*" "\\<SERVERNAME>\Paging File(*)\*" "\\<SERVERNAME>\PhysicalDisk(*)\*" "\\<SERVERNAME>\Process(*)\*" "\\<SERVERNAME>\Redirector\*" "\\<SERVERNAME>\Server\*" "\\<SERVERNAME>\System\*" "\\<SERVERNAME>\Terminal Services\*" "\\<SERVERNAME>\Processor(*)\*" "\\<SERVERNAME>\Cache\*" -si 00:00:02
    

    Nota

    Reemplace <DOMAIN\USERNAME> por las credenciales de usuario correspondientes y <SERVERNAME> por el nombre del servidor problemático.

  2. Ejecute el comando siguiente para iniciar el recopilador de datos:

    logman start <LOGNAME>
    
  3. Una vez que el servidor deja de responder, detenga el recopilador de datos ejecutando el siguiente comando:

    logman stop <LOGNAME>
    

El registro de Monitor de rendimiento se ubicará en la carpeta C:\PERFLOGS. A continuación, comprima el .blg archivo y cárguelo en el área de trabajo después de que se produzca el problema.

Después de ejecutar Monitor de rendimiento durante uno o dos días laborables, puede analizar el registro para ver si existen patrones. ¿Qué procesos aumenta la CPU? ¿Y los procesos son los mismos o diferentes cada día o hora?

En función de los hallazgos, vaya más adelante a los pasos siguientes para obtener más información sobre lo que les hace aumentar la CPU. Identifique la causa principal mediante el seguimiento de la secuencia de procesos, subprocesos, módulos y funciones.

Ejemplos de solución de problemas

Consulte los ejemplos siguientes de uso de TroubleShootingScript (TSS) para recopilar datos y CpuStres para simular la actividad de CPU.

Uso de TSS

TSS puede obtener un seguimiento elevado de uso de CPU cuando la CPU alcanza un umbral determinado:

  1. Descargue TSS y extráigalo en la carpeta C:\tss del equipo afectado.

  2. Desde un símbolo del sistema de PowerShell con privilegios elevados, ejecute el siguiente cmdlet desde la carpeta C:\tss .

    .\TSS.ps1 -perfmon general -WaitEvent HighCPU:90 -StopWaitTimeInSec 100
    

    Nota

    Espere a que se produzca el problema de uso elevado de la CPU. Una vez que el uso de cpu supera <cpuThreshold>%, mantenga la recopilación de datos durante una duración de StopWaitTimeInSec settconds (el valor predeterminado es 60).

    Estos son otros ejemplos:

    •  .\TSS.ps1 -PerfMon General -PerfIntervalSec 5 -WaitEvent HighCPU:90
      

      PerfMonrepresenta Monitor de rendimiento con un intervalo corto.

    • .\TSS.ps1 -PerfMonLong SMB -PerfLongIntervalMin 11 -WaitEvent HighCPU:90
      

      PerfMonLongrepresenta Monitor de rendimiento con un intervalo largo.

  3. Desde un nuevo símbolo del sistema de PowerShell con privilegios elevados, ejecute el siguiente cmdlet desde la carpeta C:\tss .

    .\TSS.ps1 -Stop
    

    Nota

    Si el seguimiento no se detiene después de cinco minutos, deténgalo.

TSS admite monitores de rendimiento. Para ver nombres detallados de contadores de rendimiento, ejecute el .\TSS.ps1 -ListSupportedPerfCounter cmdlet .

Inicie la captura de contadores de rendimiento con el conjunto de General contadores mediante la ejecución del cmdlet :

.\TSS.ps1 -PerfMon General

Si desea cambiar el intervalo del registro de rendimiento, use -PerfIntervalSec (la unidad es segunda) o -PerfIntervalMin (la unidad es minuto). Por ejemplo, .\TSS.ps1 -PerfMon General -PerfIntervalSec 1 especifica un intervalo de un segundo.

Estos son más ejemplos del .\TSS.ps1 -PerfMon <CounterSetName> cmdlet:

  • Inicie Monitor de rendimiento con contadores generales (CPU, memoria, disco, etc.) y un intervalo de 5 segundos:

    .\TSS.ps1 -PerfMon General -PerfIntervalSec 5
    
  • Inicie Monitor de rendimiento (Long) con contadores SMB (contadores SMB y contadores generales) y un intervalo de 11 minutos:

    .\TSS.ps1 PerfMonLong SMB -PerfLongIntervalMin 11
    

También puede hacerlo con Monitor de rendimiento para iniciar el seguimiento cuando el uso de la CPU alcanza una determinada cantidad, pero es complicado y lento.

Uso de CpuStres

Puede usar CpuStres para simular una actividad de uso elevado de la CPU mediante la ejecución de varios subprocesos. Después de realizar el seguimiento del problema de uso elevado de cpu durante seis minutos, Monitor de rendimiento muestra brechas en el gráfico siguiente, que es un problema:

Captura de pantalla de Monitor de rendimiento que muestra huecos después de realizar el seguimiento del problema de uso elevado de la CPU durante seis minutos.

Procesador Mínima Máxima Media
Tiempo de procesador (%) 4.688% 100 % 81.605%

Al agregar contadores para Procesador: %ProcessorTime y examinar las instancias, verá que CPUStres64.exe tiene el consumo más alto. Hay instancias en las que %Tiempo de procesador superó el 100 %, alcanzando aproximadamente el 180 % en los datos, lo que indica picos significativos.

Captura de pantalla de Monitor de rendimiento que muestra CPUStres64.exe es el consumidor más alto.

Tiempo de procesador (%) Mínima Máxima Media
CPUSTRES64 0 % 180.309% 19.787%

Captura de pantalla de Monitor de rendimiento que muestra la información de contadores agregada.

Compruebe la longitud de la cola del procesador, el promedio de los cuales es > 10. Se trata de un problema. Explore en profundidad quién usa el porcentaje de tiempo de procesador.

Se trata de una limitación de Monitor de rendimiento. Solo puede mostrar tantos datos.

Contadores de rendimiento para el uso de CPU

Para ver problemas de uso elevado de la CPU, compruebe primero el uso de CPU en el Administrador de tareas. Si el uso de la CPU supera continuamente el 85 %, indica que el sistema se enfrenta a un cuello de botella de CPU. Esta es la lista de contadores que deben comprobarse:

  • Procesador: % de tiempo de procesador
  • Procesador: % de tiempo de usuario
  • Procesador: % de tiempo de privilegios
  • Procesador: % de tiempo de interrupción
  • Sistema: longitud de cola del procesador
  • Sistema: llamadas por segundo
  • Sistema: Modificadores de contexto/s
  • Proceso: recuento de subprocesos
  • Proceso: recuento de identificadores

Examine los siguientes contadores que se supervisan para conocer distintos aspectos de rendimiento:

Componente Aspecto de rendimiento que se está supervisando Contadores que se deben supervisar
Procesador Uso Procesador: % de tiempo de procesador (todas las instancias)
Procesador: % de tiempo de DPC
Procesador: % de tiempo de interrupción
Procesador: % de tiempo con privilegios
Procesador: % de tiempo de usuario
Procesador Cuellos de botella Procesador: % de tiempo de procesador (todas las instancias)
Procesador: % de tiempo de DPC
Procesador: % de tiempo de interrupción
Procesador: % de tiempo con privilegios
Procesador: % de tiempo de usuario
Procesador: interrupciones/s
Procesador: DPCs en cola/s
Sistema: modificadores de contexto/s
Sistema: Llamadas del sistema/seg.
Sistema: longitud de cola del procesador (todas las instancias)
Nombre del contador Métrica
Longitud de cola del procesador (PQL) Si hay dos o más instancias por procesador y el uso de la CPU es alto, compruebe los procesos para un consumo elevado de CPU. Además, active Modificadores de contexto, % de tiempo de DPC y % de tiempo de interrupción.
% de tiempo de procesador 0-50%: correcto.
50-80%: monitor o monitor de advertencia.
80-100%: crítico. El sistema puede funcionar lentamente.
% de tiempo de DPC % de tiempo> de procesador 85 % y % de tiempo> DPC 15 %: investigue si están constantemente por encima de estos niveles. Los picos cortos están bien.

Por ejemplo, solo en un procesador con un tiempo de procesador del 100 % y más del 50 % de tiempo DPC.
% de tiempo de interrupción Tiempo elevado de interrupción de CPU: más del 30 % de tiempo de interrupción. Una gran cantidad de % de tiempo de interrupción en el procesador puede indicar un problema de hardware o controlador.

Tiempo de interrupción de CPU muy alto: más del 50 % de tiempo de interrupción. Una cantidad muy alta de % de tiempo de interrupción en el procesador podría indicar un problema de hardware o controlador.

Referencias

Declinación de responsabilidades de soluciones e información de terceros

La información y la solución de este documento representan la vista actual de Microsoft Corporation sobre estos problemas a partir de la fecha de publicación. Esta solución está disponible a través de Microsoft o a través de un proveedor de terceros. Microsoft no recomienda específicamente ningún proveedor de terceros o solución de terceros que pueda describir este artículo. También puede haber otros proveedores de terceros o soluciones de terceros que este artículo no describa. Dado que Microsoft debe responder a las condiciones de mercado cambiantes, Microsoft no debe interpretar esta información como un compromiso. Microsoft no puede garantizar ni aprobar la precisión de ninguna información o de ninguna solución presentada por Microsoft o por cualquier proveedor de terceros mencionado.

Microsoft no ofrece ninguna garantía y excluye todas las representaciones, garantías y condiciones, ya sean expresas, implícitas o legales. Estas condiciones incluyen, entre otras, representaciones, garantías o condiciones de título, no infracción, condición satisfactoria, comerciabilidad y idoneidad para un propósito determinado, con respecto a cualquier servicio, solución, producto o cualquier otro material o información. En ningún caso, Microsoft será responsable de cualquier solución de terceros que mencione este artículo.