Después de la actualización de Windows 10 Fall Creators, una instancia de svchost.exe usa constantemente tiempo de CPU


10

Desde la instalación de Windows 10 Fall Creators Update, tengo un svchost.exeproceso que usa constantemente alrededor del 14% del tiempo de CPU:

gráfico de utilización de CPU

Esta svchost.exeinstancia es responsable de alojar tres servicios:

Motor de filtrado base, CoreMessaging, Firewall de Windows Defender

El tiempo de CPU es consumido por un hilo dentro de ese proceso que Process Hacker no puede atribuir a ninguno de estos tres servicios:

captura de pantalla de Process Hacker

Dado que estos tres servicios se consideran servicios críticos del sistema, es difícil hacer algo al respecto. Estos servicios no se pueden detener ni deshabilitar services.msc, y al finalizar el proceso se activa una comprobación de errores ( CRITICAL_PROCESS_DIED). Deshabilitar el Firewall de Windows Defender a través de la IU de configuración no reduce el uso de la CPU.

Estoy sin ideas. ¿Qué podría estar causando esto? ¿Cómo puedo depurar esto más? ¿Hay alguna solución para detener estos servicios?


Actualización: Después de algunas depuraciones con @HelpingHand , hemos aislado esto al servicio de Firewall de Windows Defender. Process Monitor muestra que está accediendo constantemente al registro:

captura de pantalla de Process Monitor

Aquí está disponible una exportación CSV de una captura de Process Monitor, filtrada a ese proceso .

Todavía estoy buscando una manera de detener ese comportamiento.


Actualización 2: El análisis con el Analizador de rendimiento de Windows muestra que el código consume la mayor parte del tiempo de CPU de rpcrt4.dll:

captura de pantalla del Analizador de rendimiento de Windows


1
Si ejecuta los siguientes 2 comandos en un indicador de administrador y reinicia; si hay alguno, qué proceso de svchost está causando la CPU alta entonces: Sc config BFE type= ownentoncesSc config MpsSvc type= own
HelpingHand

1
Como ya tiene Process Hacker, si encuentra el proceso svchost que aloja BFE, por ejemplo. Si hace doble clic en el nombre del servicio en la pestaña de servicios, luego ve la pestaña de seguridad, habría pensado que los administradores habrían modificado los derechos de configuración. Lo anterior funciona para mí.
HelpingHand

1
Tal vez ahora pueda ejecutar Process Monitor con él filtrado a ese PID. Mira lo que aparece.
HelpingHand

1
Lo hace también en mi computadora. TBH, creo que su mejor opción es instalar las herramientas de Windows Performance Toolkit: docs.microsoft.com/en-us/windows-hardware/test/wpt . Esencialmente, utilizará Windows Performance Recorder para capturar un archivo de seguimiento y Windows Performance Analyzer para analizarlo. channel9.msdn.com/Shows/Defrag-Tools tiene algunos buenos programas sobre estos.
HelpingHand

1
No ordenar por módulo. eliminar esta columna También rastrea los eventos RPC. descargue este archivo , ejecute WPRUI.exe, haga clic en Agregar perfil, seleccione el WPRP descargado, seleccione Perfil de uso de CPU y Perfil de uso de red en Medidas personalizadas. Haga clic en Inicio y capture el uso durante 30 segundos. ahora mire qué PID tiene el alto uso de CPU y en el filtro de tabla / gráfico de eventos genéricos para el exe con los eventos de alto uso y RPC y mire qué acción rpc se realiza
magicandre1981

Respuestas:


11

Como resultado, esto estaba relacionado con el uso compartido de conexión a Internet (ICS).

A continuación, me gustaría describir cómo llegué a esta conclusión con la esperanza de que ayude a otras personas con problemas similares.


El primer paso es identificar el servicio que causa problemas. Si bien el propio Administrador de tareas de Windows también aprendió a hacer esto recientemente, utilicé Process Hacker, que también puede editar la configuración de un servicio.

Al hacer doble clic en la svchost.exeinstancia infractora y seleccionar la pestaña Servicio, se muestran los servicios que se ejecutan dentro de ese proceso:

Propiedades de svchost.exe (1688)

svchost.exepuede alojar muchos servicios de Windows al mismo tiempo, lo que dificulta identificar qué servicio está causando problemas. Si bien las versiones recientes de Windows 10 suelen aislar los servicios cuando hay suficiente RAM disponible , algunos servicios aún comparten un proceso.

Este es un caso así, y la forma más fácil de identificar qué servicio está causando problemas es separarlos.

Process Hacker puede hacer esto. En la pestaña Servicio de su ventana principal , podemos configurar si un servicio puede compartir un proceso:

Propiedades de MpsSvc

Al menos dos de los tres servicios sospechosos deben configurarse como Proceso propio para asegurarse de que estén separados en el futuro.

Aparentemente, a Windows Defender no le gusta que los usuarios se entrometan con la configuración de su servicio, por lo que para cambiar con éxito esta configuración, necesitaba

  • conceder al grupo de administradores acceso completo en ese servicio,
  • deshabilitar el servicio,
  • reiniciar para que el servicio se detenga (no se puede detener por separado),
  • cambie el tipo de servicio a Proceso propio y vuelva a habilitar el servicio ( configúrelo en Inicio automático ) y
  • reinicie por última vez para aplicar estos cambios.

Después de eso, el infractor svchost.exesolo alberga un único servicio, por lo que tenemos un sospechoso:

Firewall de Windows Defender (MpsSvc)

Para analizar lo que sucede dentro del servicio de firewall, usaremos la Grabadora de rendimiento de Windows y la herramienta Analizador de rendimiento de Windows, parte del ADK de Windows .

Comenzaremos registrando algunos datos. Mientras el sospechoso svchost.exeaparece en segundo plano, descargue este archivo , agréguelo como perfil, configure el Grabador de rendimiento de Windows de esta manera e inicie una grabación:

Grabador de rendimiento de Windows: marque el primer nivel de clasificación y el perfil de uso de la CPU

Deje que la grabación se ejecute durante 30 segundos más o menos, luego guarde la grabación. Después de guardar, haga clic en Abrir en WPA para abrirlo inmediatamente para su análisis.

Aquí es donde las cosas comienzan a complicarse. En mi caso, necesitaba una pista de @ magicandre1981 para buscar en el lugar correcto, en Actividad del sistemaEventos genéricos . Allí, el número de eventos RPC parecía sospechosamente alto:

46.918 eventos de Microsoft-Windows-RPC

Profundizando, el Firewall de Windows Defender svchost.exeestaba apareciendo mucho en el lado del Servidorwin:Start y en los win:Stopeventos:

RpcServerCall

El siguiente paso fue averiguar quién envió estas llamadas RPC. Al mirar en el lado del cliente, otra svchost.exeinstancia parecía sospechosa:

RpcClientCall

De hecho, Process Hacker no pudo detectar un servicio que se ejecuta dentro de ese proceso, que también causaba constantemente una carga de CPU:

Nombre del grupo de servicio: netsvcs

En este caso, el Administrador de tareas de Windows logró identificar el servicio:

Conexión compartida a Internet (ICS)

De hecho, el servicio estaba atascado en el estado inicial . Lo he deshabilitado ya que no lo necesito, y la carga de la CPU ha vuelto a la normalidad después del próximo reinicio.


Me gustaría expresar mi gratitud hacia @HelpingHand y @ magicandre1981 cuya ayuda en los comentarios lo hizo posible.


Como se descubrió más tarde en la publicación de TenForums , restablecer el Firewall de Windows Defender soluciona este problema.


@HelpingHand: ¿qué sucede si uno deshabilita los Internet Connection Sharing (ICS)servicios? ¿WiFi Hotspot ya no será una opción?
llinfeng

Esto es un poco más fácil dentro de Process Explorer. Si hace clic con el botón derecho en "svchost.exe", que utiliza una cantidad de procesador constante (mi caso era 5% constante) y hace clic en la pestaña "Servicios", verá qué servicios se ejecutan en este svchost. Solo tenía uno en este caso, ICS. Del mismo modo, mi conexión compartida a Internet estaba atascada en un estado inicial. Al ir a "Cortafuegos y protección de red" pude hacer clic en "Restaurar cortafuegos a los valores predeterminados", esto solucionó mi problema al instante.
Howard Lince III

@Howard: Considérese afortunado: una complicación mayor para mí fue que tres servicios compartieron la instancia problemática svchost.exe, lo que dificulta la identificación del servicio que causa esto. No estoy seguro de por qué no compartieron un proceso de host en su instancia.
fefrei

2

Es más simple, he tenido éxito al restablecer su configuración de Firewall de Windows (particularmente si hay un pico relacionado en la carga de la CPU) usando estas instrucciones:

Restablecer el Firewall de Windows Defender a la configuración predeterminada resolvió el problema.

Para hacer esto, abra Configuración -> Actualización y seguridad -> Windows Defender -> Abra el Centro de seguridad de Windows Defender -> Firewall y protección de red -> Restaurar la configuración predeterminada del firewall

Espero que esto ayude y funcione para otra persona ... Parece un problema bastante extendido.


1
De hecho, esto también funcionó para mí, como mencioné al final de mi respuesta. ¡Gracias por reflejar los pasos aquí!
fefrei

0

En mi caso, después de probar varias soluciones fallidas (incluidas algunas de las sugerencias anteriores, por ejemplo, restablecer el Firewall de Windows), deshabilité el "Servicio de políticas de diagnóstico" y finalmente acabó el acaparamiento de la CPU. Puede que esta no sea la solución ideal, pero no parece ser un servicio crítico. Aquí se explica cómo deshabilitarlo:

  1. Abra "Configuración del sistema" ('msconfig.exe') como administrador
  2. Pestaña general: seleccione "Inicio selectivo"
  3. Pestaña Servicios: desmarque "Servicio de política de diagnóstico"
  4. Reiniciar Windows

Gracias al canal de YouTube de Ranga Rajesh Kumar por señalarme hacia esta solución.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.