Actualmente estoy cargando una prueba de una aplicación ASP.NET. Estoy cargando con 500 usuarios en la aplicación, y mientras se está ejecutando estoy comprobando, en una consola perfmon.exe, los contadores "Sessions Actives" y "Sessions Timed Out" en el servidor web.ASP.NET Contador "Sessions Timed Out" (perfmon.exe)
En mi web.config, el tiempo de espera de la sesión es de 3 minutos (para fines de prueba).
Por lo tanto, según la prueba, el contador "Sesiones Activas" permanece en aproximadamente 900 sesiones activas, lo que supongo es normal debido a los 500 usuarios activos y otros 400 cuyas sesiones no han agotado el tiempo.
Pero cuando miro el contador de "Tiempo de espera de la sesión", aumenta de manera constante. Simplemente baja gradualmente cuando finaliza la prueba de carga.
¿Qué es este contador exactamente? Según tengo entendido, son las sesiones desaprobadas las que aún no han sido limpiadas (¿por el recolector de basura?) Y todavía están usando memoria.
Desde nuestra aplicación utiliza un enorme ammount de la memoria, estoy tratando de encontrar exactamente donde es que la memoria.
De hecho, lo que realmente necesito saber es si estas sesiones de tiempo de espera aún utilizan memoria. Gracias por el enlace, lo verificaré hoy. – Johnny5
Bueno, después de probar un poco más, este temporizador no baja hasta que se reinicie el grupo de aplicaciones (como, iisreset). [Br] Pero parece que la sesión expirada no se limpia (la memoria no se libera) hasta mi loadtest termina. – Johnny5
¿Tiene algún contenido de RCW ejecutándose en la sesión? por ej. ¿tiene acceso a cualquier objeto COM heredado y lo almacena en la sesión? Los he visto causar que la carga se mantenga alta. También se siente como si quisiera mirar otros contadores para descubrir qué es lo que está comiendo memoria. He utilizado los capítulos que he mencionado anteriormente para darme indicaciones sobre dónde se está llevando a cabo. Específicamente, los contadores GC son de gran ayuda (gen0, gen1 y gen2). – gbvb