¿Cómo puedo analizar los problemas de rendimiento antes / durante el proceso de inicio de sesión?

Respuestas:

35

Usando Process Monitor

Process Monitor es una herramienta que recopilará el sistema de archivos, el registro y los eventos de red para todos los procesos en ejecución. Los eventos recopilados se pueden analizar para determinar cómo se comporta internamente un sistema (o una aplicación) en ciertas situaciones.

En este caso, queremos utilizar la herramienta para determinar qué eventos durante el proceso de arranque tardaron mucho en completarse.

  1. Descargue Process Monitor y ejecútelo.

  2. En el menú Opciones , marque Activar inicio de sesión .

    Habilitar el registro de arranque

  3. En el cuadro de diálogo resultante, marque Generar eventos de creación de perfiles y haga clic en Aceptar .

    Generar eventos de perfilado

  4. Reinicia el sistema y replica tu problema. Una vez que el proceso de inicio de sesión se ha completado, inicie Process Monitor.

  5. Process Monitor le notificará que recopiló actividad durante el arranque y le preguntará si desea guardar esos datos ahora. Confirme el proceso haciendo clic en .

    Guardar actividad de tiempo de arranque

  6. Seleccione una ubicación de almacenamiento adecuada para el .pmlarchivo y espere a que se conviertan los datos. Una vez que se hayan cargado los datos, visualice la columna Duración abriendo el menú contextual en uno de los encabezados de columna y haciendo clic en Seleccionar columnas ...

    Seleccionar columnas ...

    ... y marcando la casilla correspondiente en el cuadro de diálogo resultante.

    Casilla de duración

  7. Cree un nuevo filtro seleccionando Filtro ... * en el menú ** Filtro .

    Menú de filtro

  8. Crear un filtro para la Duración columna en la que es más de un valor de 1 , en cuyo caso, la entrada debe ser incluido . Haga clic en Agregar para agregar el filtro a la lista y confirme la selección con Aceptar .

    ingrese la descripción de la imagen aquí

  9. En este punto, la lista de eventos en Process Monitor solo mostrará eventos que tardaron más de 1 segundo en completarse. Querrá verificar la columna Duración para eventos que tomaron mucho tiempo en completarse.

    Para fines de demostración, aquí hay una selección de eventos que tardó más de 10 segundos en completarse. Esto fue capturado en una máquina virtual con fines de demostración.

    Eventos de ejemplo
    Click para agrandar

    Si bien estos eventos no necesariamente tienen que ser los culpables de bloquear el proceso de inicio de sesión para completar, deshabilitar el servicio de indexación de Windows y Avast Anti-Virus podría valer la pena intentarlo en esta instalación.

Usando xperf

xperf es una herramienta de análisis de rendimiento de Windows Performance Toolkit. Usarlo y poder analizar los datos recopilados puede ser un desafío. Sin embargo, veremos cómo recopilar los datos requeridos y cómo ver las secciones relevantes de los mismos.

Tenga en cuenta que el Kit de evaluación e implementación de Windows (ADK), que se requiere para esto, solo funciona en Windows 7 y versiones posteriores.

  1. Descargue Windows ADK e instale al menos el componente Windows Performance Toolkit .

  2. Una vez que se completa la instalación, abra un símbolo del sistema elevado.

    Símbolo del sistema elevado

  3. Cambie a un directorio donde desee ubicar su rastreo. Al igual que el escritorio.

  4. La forma recomendada (de acuerdo con el uso de XBOOTMGR para capturar botas lentas o inicios de sesión lentos causados ​​por botas lentas ) para capturar un rastro durante el arranque es:

    xbootmgr -trace boot -traceflags base+latency+dispatcher -stackwalk profile+cswitch+readythread -notraceflagsinfilename -postbootdelay 10

    El sistema ahora iniciará el rastreo y se reiniciará.

  5. Después del reinicio, siga las instrucciones en pantalla. Se le pedirá que permita que el proceso de recolección se eleve. Una vez que se complete el proceso, encontrará el rastreo resultante en la carpeta desde donde inició el rastreo.

    En mi caso, creó un boot_1.etl(y un correspondiente boot_1.cab) en el escritorio.

    Abra el .etlarchivo en Windows Performance Analyzer .

Análisis

Después de abrir la traza, ya puede ver posibles indicios de que su problema está vinculado al hardware. Un vistazo rápido a las descripciones generales de Computación , Almacenamiento y Memoria en el Explorador de gráficos mostraría picos que deberían analizarse más a fondo.

Para fines de demostración, echemos un vistazo al gráfico Utilización por proceso . Para mostrar el contenido, simplemente haga doble clic en el gráfico para agregarlo a la vista Análisis .

Descripción general de Windows Performance Analyzer
Click para agrandar

Tenga en cuenta que ninguno de los gráficos muestra picos relevantes. Los picos azules al inicio pertenecen al proceso del Sistema y se espera que sucedan en este momento.

Los otros picos en el gráfico de uso de la CPU podrían verse mejor en contexto. Entonces, agreguemos otro gráfico a la vista Análisis. El gráfico que estamos buscando es el gráfico de Fases de arranque , que se encuentra en la sección Actividad del sistema .

Fases de arranque
Click para agrandar

En la captura de pantalla anterior, también agregué el gráfico de Eventos genéricos en la parte inferior para proporcionar un contexto adicional. Sin embargo, lo que debe tenerse en cuenta aquí es el hecho de que el primer pico visible en el uso de la CPU fue causado por el servicio Avast. Ya notamos en el análisis de Process Monitor que este proceso fue uno de los procesos que tomó una gran parte del tiempo en el proceso de arranque.

Lo que también vemos aquí, ahora que podemos verlo en el contexto de las fases de arranque, es que el pico ocurrió después de la fase de Winlogon Init (e incluso en la fase de Post Boot que ocurre cuando ya puedes ver el escritorio). Por lo tanto, podría considerarse poco probable que este proceso realmente nos esté causando un problema en la fase antes de que veamos el escritorio.

Lo que estaríamos buscando son eventos que sucedan en o alrededor de la fase Winlogon Init . Para hacerlo más fácil, puede seleccionar la fase en el gráfico de Fases de arranque. Esto resaltará todas las entradas en todos los gráficos que ocurrieron en esa fase.

Un gráfico para observar mejor es, sin duda, el gráfico de Servicios , ya que la mayoría de ellos se inician durante la fase de Winlogon Init.

Como dije en la introducción, analizar estos datos puede ser complicado, a menos que el problema salte a la vista una vez que abra la traza. Sin embargo, esta es definitivamente la herramienta adecuada para analizar el problema. Dependiendo de la situación, es posible que incluso desee recopilar trazas de pila para profundizar aún más. Sin embargo, este proceso está muy fuera del alcance de esta publicación.

Otras lecturas

Der Hochstapler
fuente
xbootmgr de WPT ( msfn.org/board/index.php?showtopic=158252 ) es la mejor herramienta para comenzar. Solo uso el registro de ProcMon para obtener una visión más profunda de una fase especial del arranque.
magicandre1981
@ magicandre1981: la publicación aún no estaba terminada;) Si desea agregar más detalles sobre xperf, no dude en editar.
Der Hochstapler