Pregunta

En un entorno de producción, ¿cómo se puede descubrir qué solicitudes http de Asp.Net, ya sea aspx o asmx o custom, están causando la mayor presión de memoria dentro de un proceso w3wp.exe? No me refiero a las fugas de memoria aquí. Es una buena aplicación saludable que desecha bien todos sus objetos. El GC generacional de Microsoft funciona bien. Sin embargo, algunas solicitudes hacen que el proceso w3wp aumente considerablemente su huella de memoria, pero solo durante la duración de la solicitud.

Es simplemente una cuestión de la rentabilidad y la escalabilidad de un entorno de producción para una aplicación SAAS, con el fin de informar regularmente al departamento de desarrollo en sus páginas de mayor capacidad de almacenamiento de memoria para devolver esa presión (memoria) donde Pertenece, por así decirlo.

No parece haber nada como:
HttpContext.Request.PeakPrivateBytes o .CurrentPrivateBytes
o
Session.PeakPrivateBytes

¿Fue útil?

Solución

Es posible que desee utilizar una herramienta como el Monitor de rendimiento para monitorear el " Proceso \ Conjunto de trabajo " para el proceso W3WP.exe y grabarlo en una base de datos. Entonces podría correlacionarlo con los registros HTTP para el servidor IIS.

Es útil tener tanto los datos de Perfmon como los registros de HTTP que se escriben en una base de datos SQL. Luego, puede usar T-SQL para mostrar las páginas solicitadas por Fecha / Hora alrededor del momento de la presión de memoria observada. Use la función DatePart para crear una Fecha / Hora redondeada a la precisión deseada de Segundo o Minuto según sea necesario.

Espero que esto ayude.

Gracias, -Glenn

Otros consejos

Si está utilizando el estado de sesión InProc , todos los datos de su sesión se almacenan en la memoria de w3wp y pueden ser la causa de su crecimiento.

No me preocuparía por eso. Podría ser que el GC esté sucediendo durante la solicitud, y el CLR esté asignando memoria para mover las cosas. O podría ser otra cosa de servicio periódico que viene con ASPNET.

A menos que esté preparado para el análisis de contadores de eventos de generación 0,1,2 GC, etc., no me preocuparía resolver este problema.

Y no suena como si fuera un problema de todos modos, solo por curiosidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top