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

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%\System32\inetsrv

cd %windir%\System32\inetsrv

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

Leer:  VBScript - Adjuntar archivos automáticamente y enviar correo Outlook

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).

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
Fernando O.

Fernando O.

Soy analista de sistemas actualmente trabajo en una empresa con mas de 200 empleados que utilizan equipo de computo al cual se les da soporte en el departamento.
Uno de mis pasatiempos fuera de la empresa es escribir artículos para PortalMasTips donde documento los problemas, inquietudes y detalles interesantes que se presentan.
Fernando O.

Latest posts by Fernando O. (see all)

Deja una respuesta

avatar
 
Archivos de fotos e imágenes
 
 
 
Archivos de audio y video
 
 
 
Otros tipos de archivos
 
 
 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

  Suscribir  
Notificar de
Compartir2
Twittear
Pin