@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

Ayuda para depurar el proceso svchost.exe

Cuando tenemos algún problema con el proceso svchost.exe de una máquina, ya sea por ejemplo, por consumos de CPU o memoria elevados, vemos que se complica el poder identificar quien es el causante del problema debido a que svchost es un proceso genérico utilizado por Windows para la ejecución de servicios.
Se nos puede dar un caso como el que muestra la siguiente imagen, con un consumo elevado del proceso svchost en el Administrador de tareas del servidor

Proceso svchost consumiendo mucha memoria
Proceso svchost consumiendo mucha memoria

El problema que tenemos es que suelen ejecutarse varias instancias del proceso svchost.exe

Procesos svchost.exe
Procesos svchost.exe

Y no solo tenemos el problema de tener varias instancias. Aunque identifiquemos el proceso que tiene los problemas, por como está implementado, en cada proceso svchost.exe puede que se estén ejecutando varios servicios, por lo que aunque tengamos el proceso svcshot.exe identificado que genera los problemas, nos faltaría todavía por identificar cual de los servicios asociados a esa instancia está generando los problemas.

Si accedemos a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost podemos ver los distintos servicios asociados a cada uno de los procesos

Instancias svchost y servicios
Instancias svchost y servicios

Otra opción de ver que servicios están asociados a cada proceso es mediante el comando tasklist.
Si ejecutamos tasklist /SVC /FI “IMAGENAME eq svchost.exe” obtenemos la siguiente salida

Instancias svchost.exe
Instancias svchost.exe

De esta forma podemos identificar mediante el PID del proceso cuales son los servicios que se están ejecutando en él.

Para poder centrar el problema en el servicio que genera el consumo excesivo tenemos que aislar los servicios en distintos procesos y para ello tenemos principalmente dos opciones.

Método 1

Por ejemplo: tenemos un problema de consumo elevado de memoria con el proceso svchost.exe con PID 2276 de la imagen anterior. Vemos que tiene varios servicios asociados por lo que para identificar cual es el que está generando el problema vamos a aislar los servicios asociados a él.
Para ello ejecutamos:

(Hay un espacio entre “=” y “own”)
Si queremos aislar el servicio de Windows Update ejecutamos

Reiniciamos el servicio y comprobamos que ahora el servicio Windows Update (wuauserv) se ejecuta en otro proceso svchost.exe

Proceso separado
Proceso separado

Podemos seguir este procedimiento con el resto de servicios del proceso problemático hasta detectar cual es el servicio que está generando los problemas. Iremos aislando los servicios hasta detectar que, por ejemplo, el servicio que provoca el elevado consumo de memoria es el servicio Winmgmt (WMI)

Para restaurar los cambios tenemos que ejecutar el siguiente comando, para cada uno de los servicios que hemos aislado

(Hay un espacio entre “=” y “share”)
Tras este cambio es necesario reiniciar el equipo.
Si queremos volver a ejecutar en el proceso del grupo el servicio de Windows Update ejecutamos

Vuelta atrás al cambio
Vuelta atrás al cambio

 

Método 2

El objetivo es separar los servicios pero en este caso lo que vamos a hacer es crear através del registro una nueva instancia de svchost.exe (Primero hacemos un backup de las claves que modificamos)

  • Crear un nuevo valor REG_MULTI_SZ de nombre WindowsUpdate en la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost.
  • Añadir el nombre del servicio (en este caso wuauserv) al valor creado.
Nueva instancia de svchost.exe
Nueva instancia de svchost.exe
  • También es necesario borrar wuauserv de la lista de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost\Netsvcs.
Quitamos del grupo existente
Quitamos del grupo existente
  • Accedemos a la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv y cambiamos ImagePath de %systemroot%\system32\svchost.exe -k netsvcs a: %systemroot%\system32\svchost.exe -k WindowsUpdate
Nueva ejecución de la instancia
Nueva ejecución de la instancia
  • Reiniciamos el servicio de Windows Updates y comprobamos que se ha creado una instancia de SVCHOST.EXE que solo contiene el servicio de Windows Update
  • Repetimos los pasos anteriores para cada uno de los servicios que queramos aisla
  • Para volver a la situación original restauramos el registro de backup

 

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Roberto Orayen

Compruebe también

powershell-comandos-para-extraer-hardware-1

Powershell: Comandos para extraer hardware

Powershell: Comandos para extraer hardware Empezamos el año 2024 con un poco de “comandeo”… Hoy …

Deja una respuesta

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

dos × 3 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu