Saltar al contenido

¿Cómo puedo identificar al culpable de mi lento apagado de Windows?

Solución:

Windows proporciona contadores de rendimiento, así como seguimiento de eventos, que permite a las aplicaciones realizar análisis de rendimiento para poder identificar la causa de los problemas de rendimiento, entre los que existen, hay un kit de herramientas excepcional: el kit de herramientas de rendimiento de Windows disponible en el SDK de Windows.

En este kit de herramientas encontrará xbootmgr.exe, destinado al análisis de rendimiento de transición de encendido / apagado de Windows.

Aunque el documento vinculado anterior entra en todos los detalles de cada transición de encendido / apagado, aquí está la idea general sobre el seguimiento y el análisis de la transición de apagado utilizando xbootmgr y la GUI de xperf:

  1. Descargue el SDK de Windows, luego instale Windows Performance Toolkit usándolo.

  2. Abra un símbolo del sistema como administrador, luego ejecute:

    cd %ProgramFiles%Microsoft Windows Performance Toolkit

  3. Si desea ayuda en el futuro, puede escribir xbootmgr -help al igual que xperf /?.

  4. Haga un seguimiento de reinicio como este:

    xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot

  5. Después del arranque, generará un seguimiento en dos minutos.

  6. La traza se ha guardado en %ProgramFiles%Microsoft Windows Performance Toolkit, puedes arrastrarlo a xperf.exe y se abrirá en una GUI.

  7. Verá una GUI con diferentes gráficos, la flecha en el lado izquierdo le permite agregar / eliminar gráficos.

  8. Mire los gráficos y vea si puede identificar algo fuera de lo común, puede seleccionar un intervalo y acercarlo si lo desea. Haga clic con el botón derecho y desacelere cuando desee ver el conjunto.

  9. Para cada gráfico, puede hacer clic con el botón derecho para obtener tablas de resumen para el intervalo seleccionado actualmente.

  10. En estas tablas, ordene por peso o por tiempo para averiguar en cuál está gastando más. Tenga en cuenta que puede arrastrar columnas, por ejemplo, la tabla de E / S le permite verificar el proceso de uso más alto, así como la ruta de uso más alta.

    El divisor (una columna de encabezado amarilla) hace que las columnas a la derecha muestren el total de las columnas a la izquierda. Por lo tanto, si primero tiene la Ruta y luego el Proceso, puede abrir el árbol de un archivo para ver qué procesos han accedido a él y luego obtener los totales para esa combinación de proceso / archivo.

  11. Puede encontrar más información sobre cómo funcionan los gráficos y tablas aquí.

  12. Si de alguna manera necesita bajar para mirar los rastros de la pila; hacer otro rastreo de arranque y agregar el -stackWalk profile , configure el _NT_SYMBOL_PATH y haga clic derecho en cualquier gráfico y habilite “Cargar símbolos”. Esto le permitirá verificar qué funciones está llamando realmente, aunque en general no lo necesitará para un apagado; pero puede permitir cosas como descubrir que su firewall está interfiriendo con su depurador como programador. Bastante ingenioso …

Buena suerte, espero que puedas encontrar al culpable. Si no es así, suelte el rastro y lo buscaremos …

Tenga en cuenta que los DPC son llamadas de procedimiento diferido y las interrupciones son interrupciones de software, ambas están relacionadas con controladores / hardware.

Mis paradas estaban tardando mucho en ejecutarse. Lo que sigue es mi ejemplo con la respuesta de Tom.

El primer gráfico muestra el problema, E / S de disco:

ingrese la descripción de la imagen aquí

Mi apagado está tardando más de un minuto y todo es E / S del disco duro.

El siguiente gráfico, Utilización del disco muestra que una unidad está casi al máximo al 100% de uso:

ingrese la descripción de la imagen aquí

El gráfico final muestra Utilización del disco por proceso:

ingrese la descripción de la imagen aquí

Filtrando hacia abajo, me doy cuenta de que todo es causado por WinInit.exe:

ingrese la descripción de la imagen aquí

Haciendo clic derecho en cualquiera de los gráficos del disco duro y seleccionando Tabla de resumen, puedo obtener los detalles de qué archivos fueron accedidos por qué proceso:

ingrese la descripción de la imagen aquí

56,4 segundos de mi apagado fueron gastados por WinInit escribiendo 6,7 GB en C:hiberfil.sys.


Pero la pregunta es por qué ¿Windows está escribiendo en mi archivo de hibernación en apagar?

Entonces recordé una opción que había activado para borrar eso. archivo de paginación en el apagado:

  • Inicio -> Ejecutar -> SecPol.msc
    • Configuración de seguridad, políticas locales, opciones de seguridad
    • Apagado: borrar el archivo de paginación de la memoria virtual

ingrese la descripción de la imagen aquí

Así que desactivé la opción y ejecuté xbootmgr de nuevo. Ahora mi apagado es de 22 segundos:

ingrese la descripción de la imagen aquí

Ahora 9s de El 22s el apagado se gasta por System escribiendo a algunos unknown expediente. Eso podría ser digno de más investigación.

Pero por ahora he resuelto mi apagado de minuto y medio.


Fui más lejos y resolví mi apagado lento de 22 segundos. De t =12s a t =21s mostró 100% Utilización del disco, pero cero E / S de disco. Fue desconcertante.

Hasta que durante un apagado escuché el sonido familiar de una de mis unidades girando. El apagado se detuvo durante 9 segundos porque Windows estaba intentando acceder a un disco que se había quedado inactivo. Nueve segundos después, la unidad responde y, un momento después, la máquina se apaga.

Es irónico que Windows despierte un disco para decirle que es hora de irse a dormir.

Eso haría que mi apagado real sea de 13,5 segundos. Eso podría valer la pena investigar más. Pero por ahora he resuelto mi apagado de 22 segundos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *