Inicio Soporte Técnico Detectar que aplicación tiene alto consumo de procesador en IIS

Detectar que aplicación tiene alto consumo de procesador en IIS

3550
0

Como administrador de servidores me toca la parte de estar detectando cuando un servidor se encuentra afectado su rendimiento por una aplicación, así que en ocasiones el alto consumo de procesador es a causa de IIS worker process (w3wp.exe) el cual si tenemos varias aplicaciones publicadas en el IIS el administrador de tareas nos mostrara varios procesos w3wp.exe el cual si tienen descripción genérica no podremos identificar que publicación es la que tiene el alto consumo de procesador en IIS.

Alto Consumo De Procesador En IIS Task Manager W3wp

Identificar publicación con alto consumo de procesador en IIS

Entramos al IIS, seleccionamos el servidor, en la ventana principal nos mostrara las opciones de IIS donde buscamos Worker Processes el cual nos mostrara el consumo de CPU de cada publicación.

Alto Consumo De Procesador En IIS IIS

Una vez que abrimos el Worker Processes vamos las publicaciones de la siguiente forma (Ver imagen siguiente) donde podremos identificar fácilmente cual publicación es la que esta consumiendo recursos.

Alto Consumo De Procesador En IIS Worker Processes

Aun dando doble clic sobre el proceso de la aplicación con alto consumo, podremos analizar mas a fondo de donde proviene la carga al obtener las solicitudes web actualmente en ejecución.

Alto Consumo De Procesador En IIS Procesos

Identificar publicación con alto consumo de procesador en IIS vía linea de comando

Abrimos Command Prompt como administrador y abrimos la ruta %windir%System32inetsrv

cd %windir%System32inetsrv

y ejecutamos

appcmd list wp

Para obtener el identificador del proceso (PID)Identificar Publicacion Con alto Consumo De Procesador En IIS Via Linea De Comando Appcmd List Wp B

por otro lado podemos obtener las solicitudes web actualmente en ejecución  el cual es una opción bastante útil de appcmd.Identificar Publicacion Con alto Consumo De Procesador En IIS Via Linea De Comando Appcmd List Requests B

Donde obtenemos el resultado con la siguiente nomenclatura.

REQUEST "00000000000000" (url:00000000, time:0000 msec, client:localhost, stage:BeginRequest, module:IIS
  • URL: La URL completa que se esta ejecutando.
  • time: El tiempo total en milisegundos que tiene ejecutándose la solicitud Web.
  • client: La dirección del usuario que inicio la solicitud.
  • stage: La etapa del canal de IIS en el que se encuentra la solicitud.
  • module: El modulo ASP.NET que se esta ejecutando

Analizando lo anterior podemos darnos si:

  • Si las solicitudes son para la misma URL, quizás esta sea la fuente del problema (ejemplo: si esta sobre cargada de consultas o información).
  • Solicitudes del mismo cliente/usuario, El usuario esta ocasionando trafico en el servidor intencionalmente o no (Si el equipo esta infectado con Malware).
Te recomendamos  Como cambiar el nombre de usuario en windows 10

Causas comunes de alto consumo de CPU del IIS

  • Una tasa alta de errores en la aplicación web ASP.NET publicada.
  • Aumento de trafico / consultas Web.
  • Código ASP.NET sin optimizar.
  • Recolección de basura – Enlace
  • Solicitudes bloqueadas en algún lugar del ciclo de ASP.NET – Enlace