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 requestsmuestra 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.
| Área | Contador de rendimiento | Qué le dice |
|---|---|---|
| Servidor | Processor: % Processor Time | Presión global de CPU en el host |
| Servidor | Memory: Available MBytes | Si al servidor le falta memoria |
| Servidor | LogicalDisk: Avg. Disk sec/Read y sec/Write | Latencia de disco, a menudo la causa de un registro o un acceso a archivos lentos |
| Proceso de trabajo | Process (w3wp): % Processor Time, Private Bytes | CPU y memoria usadas por cada grupo de aplicaciones; un crecimiento sostenido de Private Bytes sugiere una fuga |
| IIS | Web Service: Current Connections, Total Method Requests/sec | Nivel de tráfico por sitio |
| ASP.NET | ASP.NET: Requests Queued, Request Wait Time | Solicitudes que esperan un hilo; si los valores suben, el servidor está en su límite de concurrencia |
| ASP.NET | ASP.NET: Requests Rejected | Solicitudes devueltas como HTTP 503 porque el servidor estaba demasiado ocupado |
| ASP.NET | ASP.NET Applications: Requests/Sec, Errors Total/Sec | Rendimiento y tasa de errores por aplicación |
| ASP.NET | ASP.NET: Application Restarts, Worker Process Restarts | Reciclados 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)
- Ejecute
perfmony abra Performance Monitor. - Añada los contadores de la tabla anterior, eligiendo la instancia w3wp de cada grupo de aplicaciones que le interese.
- 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.
- 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

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.