Grupo de aplicaciones IIS Uso elevado de CPU a pesar de que no hay solicitudes

10

Recientemente migré un conjunto de servidores Windows Server 2008 R2 / IIS 7.5 a nuevos servidores que ejecutan Windows Server 2012 / IIS 8.

Estoy experimentando un comportamiento extraño de IIS. Tenemos 2 servidores idénticos, cada servidor ejecuta 2 sitios web, cada uno en su propio grupo de aplicaciones. El código para cada uno de los sitios web es idéntico. (Literalmente ... mismo dll y todo, solo una configuración ligeramente diferente).

Los grupos de aplicaciones están configurados para reciclarse en un horario cada 24 horas, pero durante ese período de 24 horas, el uso de la CPU del proceso de trabajo w3wp se incrementa en incrementos del 12,5% (el servidor tiene 8 procesadores, por lo que no creo que sea una coincidencia).

Una vez que el uso de la CPU aumenta, NO volverá a bajar hasta que la aplicación se recicle. Por lo que puedo decir, la aplicación no está haciendo nada y NO está procesando solicitudes en este momento. Puedo bloquear todo el tráfico al servidor y el uso de la CPU simplemente permanecerá allí. Incluso puedo reiniciar el sitio web, y el uso de la CPU sigue siendo el mismo. La única forma de restablecer el uso de la CPU es reciclar o reiniciar el grupo de aplicaciones en el que se ejecuta.

Estoy algo seguro de que este problema no tiene nada que ver con mi código, pero ¿algún tipo de configuración de IIS deficiente o un cambio en IIS 8 que funciona mal con la configuración de hardware o algo así?

No estoy seguro de si es importante o no, pero estos son servidores Rackspace Performance Cloud.

Aquí hay una captura de pantalla para mostrarle la carga de la CPU a lo largo del tiempo en estos servidores (las flechas verdes señalan los momentos en que el grupo de aplicaciones se recicla. Puede ver que cada meseta es un múltiplo integral de 12.5%:

ingrese la descripción de la imagen aquí

¿Alguien ha observado este comportamiento? He encontrado esta pregunta de 2009 con alguien que tiene lo que parece ser el mismo problema con IIS 6:

IIS w3wp usando alta CPU sin tráfico

Cualquier ayuda es muy apreciada

Leland Richardson
fuente

Respuestas:

1

Tuve exactamente el mismo problema con Sharepoint 2013 e IIS 8 en 2012 ... Nunca solucionamos problemas, sino que pasamos a SP2013 en 2008 R2 y todo estuvo bien.

Jorge
fuente
2
hombre. después de todo el trabajo que acabo de poner en la migración, esta no es la respuesta que esperaba ...: /
Leland Richardson
1

Puede intentar usar la herramienta de diagnóstico de depuración para localizar qué está causando el problema. Por lo general, es para solucionar fallas y pérdidas de memoria, pero podría ayudar a encontrar qué componente está causando el problema.

Greg Bray
fuente
¿Cómo utilizar la herramienta de diagnóstico de depuración mediante programación high CPU or RAM more 90%?
Kiquenet
@ Kiquenet Puede intentar tomar un volcado de memoria del proceso y luego analizarlo en otra máquina. Estoy enfrentando un problema similar y pude capturar un volcado en <1 min en un servidor con ~ 100% de uso de CPU
Piyush Saravagi
Sí, ¿entonces capturar un volcado en <1 min en un servidor con ~ 100% de uso de CPU mediante programación ?
Kiquenet
1

Esto realmente parece un código atascado en un bucle infinito.

Entra una solicitud, IIS comienza a servirla, algo (probablemente un error) desencadena este comportamiento, un subproceso de trabajo ingresa a un bucle infinito y vincula una CPU al 100%, y luego permanece así hasta que se recicla el grupo de aplicaciones.

Incluso si no entran nuevas solicitudes, la CPU permanece en uso porque el hilo atascado nunca termina realmente.

A veces, una nueva solicitud desencadena este comportamiento nuevamente , y luego obtienes dos CPU atascadas (o tres, o cuatro ...).

Reciclar el grupo de aplicaciones, por supuesto, termina todos los hilos de trabajo, por lo tanto, el problema se resuelve ... hasta que vuelva a suceder.

Massimo
fuente
0

Puede adjuntar un generador de perfiles de CPU al proceso w3wp y echar un vistazo a lo que está sucediendo allí. Debería poder ver qué consume los ciclos de la CPU.

MichelZ
fuente
¿Cómo adjuntar un generador de perfiles de CPU al proceso w3wp mediante programación cuando CPU o RAM alta más 90% ?
Kiquenet
0

A mí me parece un bucle infinito. Lo he visto varias veces, a pesar de que IIS dice que no hay solicitudes pendientes. No estoy seguro de cómo puede ser eso, pero esto es exactamente lo que verías. La parte difícil es que IIS no registra las solicitudes hasta que se completan, por lo que es difícil averiguar qué solicitud desencadena este comportamiento.

James
fuente