¿Cómo analizo el uso excesivo de CPU en modo kernel de Windows?

8

Mi máquina con Windows XP recientemente comenzó a congelarse en mí cada reinicio extraño después de unos minutos de uso (diferentes programas / sin inicio de prg adicional).


Actualización: ahora he logrado obtener un poco más de detalle con Process Explorer. Esta es una CPU de 2 núcleos y el uso del núcleo al 100% es solo en un núcleo. La lista de procesos muestra DPC - Llamadas de procedimiento diferido al 50% (eso es 100% en un núcleo). Entonces la pregunta es ahora: ** ¿Qué es DPC y cómo los soluciono?


Próxima actualización : OKIES ... usando esto y que he podido ejecutar xperf en mi Windows XP, y los volcados de muestra que tomé se muestran muy bien en mi computadora portátil Win7. Sí, necesita una computadora Win7 / Vista para ver los volcados realizados en Windows XP. Sin embargo , ahora me enfrento al siguiente problema, puedo habilitar el seguimiento de xperf , xperf -on Latencyy el problema ahora también volvió a ocurrir mientras el seguimiento de xperf estaba activado, pero tan pronto como mi DPC llega al 100%, Windows no inicia ningún proceso nuevo (o su el inicio nunca termina) (una ventana abierta, por ejemplo, cmd sigue respondiendo bien , pero cada exe que intente llamar también se bloquea (dirfunciona bien porque es un comando cmd): solo puedo suponer que se CreateProcesscuelga con alguna parte del kernel). Ahora, no poder iniciar ningún proceso nuevo significa que no puedo ejecutar xperf -d dumpfile.etl, porque , cuando lo ingreso en la ventana de cmd, simplemente se cuelga .

Parece que no tengo suerte aquí. Prefiero tirar todo el equipo que comenzar a deshabilitar manualmente los controladores ... :-)

Cualquier otra idea apreciada!


Es decir, mientras Windows permaneció receptivo teóricamente (por ejemplo, el cursor del mouse se movió normalmente y pude hacer clic, y finalmente se reconoció el clic) las acciones tomadas por el usuario solo se respondieron después de minutos (literalmente).

Ejemplo: presionar la tecla Bloq Num en el teclado normalmente alterna el LED Bloq Num en el teclado. Este también es el caso con mi máquina semi-congelada, pero solo después de un minuto o dos.

Una vez, logré iniciar Process Explorer y, después de unos minutos, el gráfico de información del sistema indicaba claramente el uso del 100% de la CPU en la línea roja (modo kernel) y la línea verde se mantuvo en cero. En este estado, aunque el gráfico todavía se actualizaba en la pantalla, la máquina ya no podía funcionar. (Bueno, a menos que esté dispuesto a esperar unos minutos después de cada clic).

Entonces, ahora me pregunto cuál podría ser el problema, ya que no instalé nada nuevo en esta máquina durante semanas, ciertamente no antes de ver este comportamiento. (El reinicio ayuda a veces, a veces necesito un segundo o tercer reinicio antes de que la máquina se pueda usar por un período de tiempo más largo).

Ahora, ¿cómo puedo averiguar qué está causando el uso excesivo del modo kernel?


Nota: También publiqué esto en los foros de sysinternals .

Martín
fuente
Una forma sería utilizar el proceso de eliminación. En XP, ejecute el programa MSCONFIG y vaya a la pestaña INICIO y desactive todo, luego reinicie y vea si eso lo soluciona. Si no es así, pruebe un programa como AUTORUNS o HijackThis y sea más agresivo con la eliminación. Una vez que haya recuperado las operaciones, vuelva a habilitar las cosas de una en una. El 90% de la basura que se ejecuta en el inicio no es necesaria, el otro 10% es basura :-)
Psycogeek
@Psycogeek: apreciado. Prefiero no hacer esto, ya que eso me llevaría días que no tengo :-)
Martin
ahh, son minutos para deshabilitar la basura de inicio, son días para deshabilitar los controladores de dispositivo :-) cuando intento resolver su problema, usando todo su conjunto de pistas, en realidad suena más como algunas cosas de tipo de virus. pero podría ser fácilmente un dispositivo que no responde. ¿Tienes algo atascado externamente que puedes eliminar temporalmente? ¿ejecutó una comprobación de los discos, como por ejemplo una prueba INTELIGENTE de las unidades? para ver si obtienes alguna pista de eso?
Psycogeek
Ok, ahora (dpc) tendré que verificar las cosas aquí: superuser.com/q/202254/50211 y ver si puedo llegar al fondo de esto.
Martin
¿Cuál fue el resultado?
stej

Respuestas:

2

Puede averiguar qué rutina DPC está causando la congelación utilizando una herramienta como LatencyMon ( http://www.resplendence.com/latencymon ). Simplemente busque la rutina DPC que tome el tiempo total más largo.

Zero3
fuente
Claramente, LatencyMon no funciona en Windows XP. Y la pregunta es sobre un problema de rendimiento en el sistema Windows XP.
Edward
No estaba al tanto de eso, gracias. Sin embargo, mi sugerencia sigue siendo la misma: simplemente use un programa diferente en su lugar, que lo hace. Un ejemplo: DPC Latency Checker ( thesycon.de/deu/latency_check.shtml ).
Zero3
En realidad, las características de LatencyMon son mucho mejores / más fáciles de usar para los usuarios finales que Latency Checker. Sistema de análisis LatencyMon y proporciona información muy detallada, al nivel de qué controlador consume más recursos, cuál tiene el peor efecto en el rendimiento del sistema. Otro lado, el Verificador de latencia solo muestra un gráfico que solo le brinda la información más básica. Ese es su sistema fuera de latencia DPC o no. Otros trabajos son todos tuyos. Tengo problemas para encontrar una herramienta igual / similar para XP, que funcione de la misma manera que LatencyMon.
Edward