recycled practices conditions best automatically application app .net iis-6 application-pool

.net - practices - recycled pool iis



El proceso de trabajo se recicla porque alcanzó su límite de memoria virtual (4)

Este podría ser un enlace útil:

http://blogs.msdn.com/tom/archive/2008/06/25/asp-net-tips-finding-what-is-taking-up-memory.aspx

(Y publicaciones anteriores que explican un contexto más de lo que está haciendo)

Tenemos un sitio web ASP.NET bastante grande (escrito por nosotros mismos) para nuestros clientes. Consiste en un servicio web, un sitio web y un sitio web de servicios de imágenes, los tres en su propio directorio virtual. Los tres directorios virtuales están juntos en un grupo de aplicaciones. El conjunto tiene ambos límites de memoria (memoria virtual máxima y memoria máxima utilizada) configurados en 500 megabytes.

Sin embargo, el grupo de aplicaciones sufre muchos reciclamientos, incluso con solo un usuario a la vez. El mensaje del registro de eventos dice:

Un proceso de trabajo con identificación de proceso del grupo de aplicaciones ''xxxx'' que sirve ''xxxx'' ha solicitado un reciclaje porque ha alcanzado su límite de memoria virtual.

Sin embargo, al observar el proceso de trabajo con Process Explorer no se muestra nada que admita este mensaje. ¿Qué contadores debería mirar para observar la memoria que de hecho está limitada por ambas configuraciones?

Actualización 1

Al observar el proceso en el Administrador de tareas, se muestra un "uso de memoria" y un "tamaño de vm" de alrededor de 100 MB, pero el proceso se recicla con el mensaje anterior. 5 GB de memoria física disponible en el servidor ...

Actualización 2

Aunque el sitio web es bastante grande, el problema se concentra en una pequeña parte de la aplicación. Ejecuta una consulta (utilizando Oracle) y vincula los resultados a una gridview y un repetidor webcontrol. Los resultados consisten en una breve descripción y un ícono (cargado a través del sitio web que sirve imágenes). Si ejecuto 10 acciones de búsqueda una detrás de otra, cada una dando 9 resultados, el proceso de trabajo muestra el uso de memoria y el tamaño vm de alrededor de 100 MB y recicla ...

Actualización 3 La conmutación del uso del sitio web de servicio de imágenes no produce mejores resultados. Entonces creo que es justo decir que el problema es otra cosa.


Intenta usar el Administrador de tareas de Windows. En la pestaña de procesos, vaya al menú Ver y elija Seleccionar columnas. Seleccione la columna Tamaño de memoria virtual y luego observe el valor para el proceso de trabajo asp.net.


Solo como observación ... Si su sitio de "servicio de imágenes" realiza cualquier procesamiento / generación de imágenes en línea, puede tragar rápidamente la memoria al no llamar a Dispose() en ningún recurso desechable, particularmente aquellos que están envolviendo la funcionalidad nativa. .

No es una respuesta directa a su pregunta, pero podría ayudar a analizar el problema subyacente que causa el uso desenfrenado de la memoria.


Tuve el mismo problema con una máquina virtual cuando actualizamos el tamaño de la memoria de 4 Gb a 8 Gb (irónicamente). Encontré este blog que explica que podemos usar "límite de memoria privada" pero no "límite de memoria virtual" con sistema de 64 bits, porque: "Si estás en una plataforma de 64 bits (y yo), la aplicación ASP.NET reserva memoria virtual agresivamente" .

http://blog.walteralmeida.com/2011/07/iis7-private-memory-limit-versus-virtual-memory-limit.html