Opsio - Cloud and AI Solutions
Monitoring6 min de lectura· 1487 palabras

Cómo monitorizar el rendimiento de un servidor IIS: contadores, registros y herramientas

Johan Carlsson
Johan Carlsson

Country Manager, Suecia

Publicado: ·Actualizado:
Traducido del inglés y revisado por el equipo editorial de Opsio. Ver original →

Para monitorizar el rendimiento de un servidor IIS, vigile cuatro capas: el servidor (CPU, memoria, disco), el proceso de trabajo de IIS (w3wp.exe), la canalización de solicitudes (solicitudes por segundo, solicitudes en cola y rechazadas, tiempo de respuesta) y los errores (tasas de HTTP 5xx). Recoja estos datos con los contadores del Monitor de rendimiento de Windows y los registros de IIS, y envíelos a una herramienta de monitorización que avise de las tendencias.

Puntos clave

  • Las solicitudes en cola, las solicitudes rechazadas y el tiempo de respuesta dicen más sobre el impacto en el usuario que la CPU por sí sola.
  • Los registros de IIS incluyen por defecto un campo time-taken, de modo que puede medir las URL lentas sin herramientas adicionales.
  • Use Failed Request Tracing para capturar el detalle de las solicitudes lentas o fallidas que los registros solo resumen.
  • appcmd list requests muestra las solicitudes que se están ejecutando ahora mismo, lo que ayuda cuando un sitio se cuelga.
  • Para alertas e histórico, envíe los contadores a Amazon CloudWatch, Azure Monitor o una herramienta como Datadog.

¿Qué métricas de rendimiento de IIS debe monitorizar?

Empiece con un conjunto reducido de contadores que muestren carga, saturación y errores. Añada más solo cuando investigue un problema concreto.

ÁreaContador de rendimientoQué le dice
ServidorProcessor: % Processor TimePresión global de CPU en el host
ServidorMemory: Available MBytesSi al servidor le falta memoria
ServidorLogicalDisk: Avg. Disk sec/Read y sec/WriteLatencia de disco, a menudo la causa de un registro o un acceso a archivos lentos
Proceso de trabajoProcess (w3wp): % Processor Time, Private BytesCPU y memoria usadas por cada grupo de aplicaciones; un crecimiento sostenido de Private Bytes sugiere una fuga
IISWeb Service: Current Connections, Total Method Requests/secNivel de tráfico por sitio
ASP.NETASP.NET: Requests Queued, Request Wait TimeSolicitudes que esperan un hilo; si los valores suben, el servidor está en su límite de concurrencia
ASP.NETASP.NET: Requests RejectedSolicitudes devueltas como HTTP 503 porque el servidor estaba demasiado ocupado
ASP.NETASP.NET Applications: Requests/Sec, Errors Total/SecRendimiento y tasa de errores por aplicación
ASP.NETASP.NET: Application Restarts, Worker Process RestartsReciclados no planificados que descartan sesiones y provocan primeras solicitudes lentas

La referencia de contadores de rendimiento de ASP.NET de Microsoft explica por qué importan las solicitudes en cola: cuando el contador sube de forma lineal con la carga de clientes, el servidor ha alcanzado el límite de solicitudes simultáneas que puede procesar. Requests Rejected cuenta las solicitudes que devolvieron HTTP 503 por falta de recursos. Estos contadores de ASP.NET se aplican a las aplicaciones de .NET Framework. Las aplicaciones ASP.NET Core alojadas en IIS exponen sus métricas mediante contadores de eventos de .NET, así que use dotnet-counters o su agente de APM para ellas.

Cómo monitorizar IIS con las herramientas integradas de Windows

Se puede hacer mucho con lo que incluye Windows Server. Estas herramientas bastan para diagnosticar problemas y para entornos pequeños.

Monitor de rendimiento (PerfMon)

  1. Ejecute perfmon y abra Performance Monitor.
  2. Añada los contadores de la tabla anterior, eligiendo la instancia w3wp de cada grupo de aplicaciones que le interese.
  3. Cree un Data Collector Set para registrar los contadores en un archivo con un intervalo de muestreo corto, de modo que tenga una línea base antes de que empiecen los problemas.
  4. Compare la línea base con un periodo lento. Un aumento de las solicitudes en cola con la CPU estable apunta a llamadas bloqueantes (base de datos, API externas) y no a falta de cómputo.

Para una recogida con scripts, typeperf escribe los mismos contadores en CSV desde la línea de comandos.

Registros de IIS y tiempo de respuesta

IIS escribe registros W3C por sitio. Según la referencia de configuración logFile de IIS, los campos por defecto incluyen TimeTaken, HttpStatus, HttpSubStatus y Win32Status. Con ellos tiene el tiempo de respuesta y el código de estado de cada solicitud. Analice los registros con Log Parser, PowerShell o su plataforma de logs para encontrar:

  • Las URL más lentas según el percentil 95 de time-taken.
  • El porcentaje de respuestas 5xx por hora, desglosado por subestado.
  • Picos de tráfico por IP de cliente o agente de usuario, que pueden indicar bots o ataques.

Failed Request Tracing

Failed Request Tracing (a menudo llamado FREB) registra toda la canalización de una solicitud que cumple una regla, como cualquier solicitud más lenta que un tiempo dado o que devuelva un 500. Cada traza muestra qué módulo consumió el tiempo. Actívelo para un sitio y un patrón de URL concretos mientras investiga y desactívelo después, porque trazar todas las solicitudes añade sobrecarga.

Solicitudes en ejecución

Cuando un sitio se cuelga, compruebe qué está procesando IIS en este momento. En el Administrador de IIS, abra Worker Processes y consulte las solicitudes actuales de un grupo. Desde la línea de comandos, la herramienta AppCmd lista las solicitudes en ejecución con su URL y el tiempo transcurrido, y puede filtrar por sitio, grupo de aplicaciones o proceso de trabajo:

%systemroot%\system32\inetsrv\appcmd list requests /apppool.name:DefaultAppPool

¿Qué herramientas pueden monitorizar IIS de forma continua?

Las herramientas integradas sirven para investigar, pero no le avisan a las 03:00. En producción, envíe los contadores y los registros a una plataforma de monitorización.

  • Agente de Amazon CloudWatch: para IIS en EC2, la configuración del agente de CloudWatch admite una subsección por objeto de rendimiento de Windows (Memory, Processor, LogicalDisk y otros) y los contadores que se quieren recoger. También puede enviar los archivos de registro de IIS a CloudWatch Logs.
  • Azure Monitor: para VM de Azure y servidores habilitados con Arc, cree una regla de recopilación de datos para recoger contadores de rendimiento adicionales y registros de IIS en un espacio de trabajo de Log Analytics.
  • Herramientas de APM y observabilidad: Datadog, Dynatrace, New Relic y SolarWinds recogen métricas de IIS y además trazan las solicitudes hasta el código de la aplicación y la base de datos, lo que muestra por qué una solicitud fue lenta, y no solo que lo fue.

Sea cual sea la herramienta, avise primero de los síntomas que notan los usuarios: tiempo de respuesta creciente, solicitudes en cola y tasa de errores 5xx. Use las alertas de CPU y memoria como señales de apoyo. Si además ejecuta la base de datos en Windows, complemente esto con la monitorización del rendimiento de SQL Server.

Umbrales de alerta prácticos para empezar

No hay límites universales; fije los umbrales a partir de su propia línea base. Un punto de partida razonable:

  • Requests Queued por encima de cero durante varios minutos seguidos.
  • Cualquier Requests Rejected (HTTP 503).
  • Percentil 95 de time-taken muy por encima de la línea base en sus URL clave.
  • Porcentaje de respuestas 5xx por encima de su nivel normal.
  • Private Bytes de un proceso w3wp creciendo de forma sostenida entre reciclados.
  • Reinicios no planificados de la aplicación o del proceso de trabajo.

Revise los umbrales después de cada incidente y de cada prueba de carga. Una prueba de carga muestra dónde empiezan a subir las solicitudes en cola, que es su límite real de capacidad.

Cómo ayuda Opsio

Opsio ofrece monitorización 24/7 para cargas de trabajo de Windows e IIS en AWS y Azure, con ajuste de alertas y respuesta a incidentes. Consulte nuestros servicios de monitorización y soporte en la nube o lea la guía más amplia sobre cómo monitorizar el rendimiento de Windows Server.

Preguntas frecuentes

¿Cómo compruebo rápidamente el rendimiento de IIS?

Abra el Monitor de rendimiento y añada Requests Queued, Requests/Sec y los contadores de CPU y memoria del proceso w3wp; después revise la vista Worker Processes del Administrador de IIS para ver las solicitudes de larga duración. Los registros recientes de IIS muestran el tiempo de respuesta por URL en el campo time-taken.

¿Qué significa un valor alto de Requests Queued?

Que las solicitudes esperan un hilo libre. Normalmente significa que la aplicación está bloqueada por una dependencia lenta, como una base de datos o una API externa, o que el servidor ha alcanzado su límite de concurrencia.

¿Cómo encuentro las páginas lentas en IIS?

Analice el campo time-taken de los registros de IIS para ordenar las URL por tiempo de respuesta y habilite después Failed Request Tracing para las URL más lentas, a fin de ver qué módulo consume el tiempo.

¿Puedo monitorizar IIS con Amazon CloudWatch?

Sí. Instale el agente de CloudWatch en el servidor Windows, incluya en su configuración los contadores de rendimiento de IIS y ASP.NET y añada la carpeta de registros de IIS como origen de logs.

¿Funcionan los contadores de ASP.NET con ASP.NET Core?

No. Los contadores clásicos de ASP.NET cubren las aplicaciones de .NET Framework. ASP.NET Core expone las métricas mediante contadores de eventos de .NET, que se leen con dotnet-counters o con un agente de APM.

Lecturas relacionadas

Escrito por

Johan Carlsson
Johan Carlsson

Country Manager, Suecia

Johan lidera las operaciones de Opsio en Suecia, impulsando la adopción de IA, la transformación DevOps, la estrategia de seguridad y las soluciones cloud para empresas nórdicas. Con más de 12 años de experiencia en infraestructura cloud, ha entregado más de 200 proyectos en AWS, Azure y GCP, especializándose en revisiones Well-Architected, diseño de landing zones y estrategia multi-cloud.

Normas editoriales: Este artículo lo ha escrito el profesional cloud indicado arriba. Lo actualizamos cuando cambia la tecnología o la normativa que trata; las fechas de esta página indican la última actualización. Opsio mantiene su independencia editorial.